{"id":54822,"date":"2018-02-26T14:40:43","date_gmt":"2018-02-26T13:40:43","guid":{"rendered":"http:\/\/www.emu-france.com\/?p=54822"},"modified":"2018-02-28T10:16:30","modified_gmt":"2018-02-28T09:16:30","slug":"consoles-de-salon-rpcs3-v0-0-5-alpha","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=54822","title":{"rendered":"[Consoles de salon] RPCS3 v0.0.5 Alpha"},"content":{"rendered":"<p>Cr\u00e9\u00e9 par <a href=\"https:\/\/github.com\/DHrpcs3\/rpcs3\">DH<\/a> &amp; Hykem (et rejoint par un ensemble de <a href=\"https:\/\/rpcs3.net\/about\">d\u00e9veloppeurs<\/a>), <strong>RPCS3 <\/strong> est un \u00e9mulateur de Playstation 3 multi-plateformes qui a pour objectif de devenir le plus complet possible. Il fait principalement office de d\u00e9sassembleur mais pousse la performance jusqu&rsquo;\u00e0 ex\u00e9cuter un certains nombres de jeux commerciaux devenant ainsi le premier \u00e9mulateur de PS3 \u00e9mulant un jeu du commerce, toutefois il n\u00e9cessite un PC extr\u00eamement performant.<br \/>\n&nbsp;<br \/>\nEn effet il vous faudra rien de moins qu&rsquo;un CPU type core i7 @ 4Ghz (voir config minimale requise sur le site officiel), une carte graphique r\u00e9cente type nVidia GTX, de la m\u00e9moire haute performance type DDR4 ou encore un syst\u00e8me d&rsquo;exploitation r\u00e9cent pour esp\u00e9rer lancer des jeux dans un mode relativement fluide (mais attention cela d\u00e9pend \u00e9norm\u00e9ment des builds et des jeux).<br \/>\n&nbsp;<br \/>\nPlusieurs rendus s&rsquo;offre \u00e0 vous: Aucun, OpenGL, DirectX12 (Windows 10 uniquement) et Vulkan (qui a pour but de remplacer \u00e0 terme OpenGL et ses d\u00e9riv\u00e9s en exploitant plus efficacement les architectures informatiques modernes).<br \/>\n&nbsp;<br \/>\n<a href=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2017\/03\/rpcs3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-49524\" src=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2017\/03\/rpcs3.jpg\" alt=\"\" width=\"448\" height=\"252\" srcset=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2017\/03\/rpcs3.jpg 1920w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2017\/03\/rpcs3-300x169.jpg 300w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2017\/03\/rpcs3-768x432.jpg 768w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2017\/03\/rpcs3-1024x576.jpg 1024w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/><\/a><br \/>\n&nbsp;<br \/>\nCette version, qu&rsquo;on va dire \u00ab\u00a0stable\u00a0\u00bb dans le sens ou elle est officiellement publi\u00e9e sur le site officiel (ce qui change des builds r\u00e9gulier dit \u00ab\u00a0WIP\u00a0\u00bb ou \u00ab\u00a0GIT\u00a0\u00bb) n&rsquo;est disponible que pour les processeurs 64 bits.<\/p>\n<p>&nbsp;<br \/>\n<em><strong>Version changes serve as landmarks and are by no means stable builds<br \/>\nThis changelog lists the main (but not all) changes made since 0.0.4 <\/strong><\/em><br \/>\n&nbsp;<br \/>\n<em>&#8211; Removed SSSE3 dependencies! RPCS3 now works with any x64 CPU. Obviously, CPUs without SSSE3 are too slow for RPCS3;<br \/>\n&#8211; Ryzen 5\/7 performance improvements on Windows! Added internal thread scheduler for Ryzen as Windows&rsquo; scheduler for Ryzen CPUs is faulty (Linux was already working properly!);<br \/>\n&#8211; Native user interface! You no longer need to reach your keyboard for GUI actions (excluding on-screen-keyboard actions which are not implemented yet) when playing with a controller;<br \/>\n&#8211; Huge Input Improvements! Greatly improved customization of all input options (XInput, MMJoy, DualShock 4, evdev);<br \/>\n&#8211; Multiple Input Profiles! You no longer need to change input settings every time you change to a game that requires a different layout;<br \/>\n&#8211; Huge Compatibility and Performance Improvements!<br \/>\n&#8211; <a href=\"https:\/\/rpcs3.net\/blog\/2017\/12\/01\/rpcs3-begins-to-emulate-several-awaited-aaa-exclusives\/\">Tons of awaited games finally started working!<\/a><br \/>\n&#8211; More AVX-512 Support! Added AVX-512 code-paths to ASMJIT Recompiler. Also added more AVX2 code-paths.<br \/>\n&#8211; More XOP Support! Added XOP code-paths to ASMJIT Recompiler.<br \/>\n&#8211; Game List Compatibility column! Database is now included on download for Windows builds, you can now easily see the status for your games (Linux users can easily download the database!);<br \/>\n&#8211; <a href=\"https:\/\/www.youtube.com\/watch?v=wEWF2xh5E8s\">Removed PSP2 (PS Vita) code<\/a>. A dedicated PS Vita project has emerged, therefore we chose to abandon the idea of PSP2 emulation inside RPCS3 and focus solely on PS3. If you&rsquo;re interested on PSVita emulation, visit <a href=\"https:\/\/www.emu-france.com\/emulateurs\/333-consoles-portables\/372-sony-playstation-vita\/7536-vita3k\/\">Vita3K<\/a>. Maybe one day when RPCS3 is very matured, PSP2 (PS Vita) emulation comes back, who knows.<br \/>\n&#8211; Uniformized version counter! No more confusions! RPCS3 now uses commit count everywhere instead of using TravisCI and AppVeyor individual build counters on file names. Build strings for Windows and AppImage binaries are now the same.<br \/>\n&#8211; And TONS of Bugfixes as always!<\/em><br \/>\n&nbsp;<br \/>\nEn d\u00e9tails:<br \/>\n&nbsp;<\/p>\n<pre style=\"height: 200px;\"> \r\n\r\nCore\r\n\u2013 Optimized CPUID checks;\r\n\u2013 Fixed fs::dir with constant begin\/end;\r\n\u2013 Fixed cond_variable timeout;\r\n\u2013 Fixed \"Exit RPCS3 when process finishes\" command line crash;\r\n\u2013 Improved Restart function \u2013 should now work correctly with game launchers;\r\n\u2013 Added warning when corrupted PARAM.SFO is detected;\r\n\u2013 Added installation for additional packages on game boot (INSDIR, PKGDIR, PS3_EXTRA);\r\n\u2013 Removed \/app_home\/ dependency;\r\n\u2013 Improved logging messages for multiple RPCS3 instances;\r\n\u2013 Refactored logging mechanisms;\r\n\u2013 Restored log compression;\r\n\u2013 PKG installer update for DLC: Don't ask for overwriting, Limit cancellation capabilities;\r\n\u2013 Improved check for cellSurmixer event queue (some games do not set event queue name, though key seems constant for them);\r\n\u2013 Implemented setting for maximum threads to be used on LLVM compilation (default: All);\r\n\u2013 CPUTranslator: Added bitcast, trunc, zext, sext;\r\n\u2013 Added option to manage thread placement. Makes an impact on windows when using Ryzen processors, most other CPUs should be unaffected. Linux does a better job on its own so the option is not recommended on Linux;\r\n\u2013 Handles exceptions at game list update, fixed RPCS3 not starting when corrupted PARAM.SFO is present;\r\n\u2013 Handles exceptions at loading patch.yml file, fixed RPCS3 not starting when bad patch.yml file is present;\r\n\u2013 Initial cpu_translator implementation;\r\n\u2013 Returns CELL_ENOSYS on unpresented syscalls;\r\n\u2013 Removed PSP2 (PS Vita) code;\r\n\r\nPPU\r\n\u2013 Use shared jit_compiler instance \u2013 fixes deregisterEHFrames error message on Linux;\r\n\u2013 Disassembler: Added db8cyc, db10cyc, db12cyc, db16cyc opcodes;\r\n\u2013 Remove SSSE3 dependency;\r\n\u2013 Fixed primary stack size;\r\n\u2013 PPU LLVM: rewrote add\/sub instructions: Uses new patterns for saturation instructions, Avoids ZExt\/SExt completely;\r\n\u2013 PPU LLVM: rewrote AVG instructions;\r\n\r\nSPU\r\n\u2013 sys_spu_thread_group_create: If priority is between 16 and 255, make sure type is not SYS_SPU_THREAD_GROUP_TYPE_EXCLUSIVE_NON_CONTEXT;\r\n\u2013 SPU ASMJIT: Interrupt optimizations - Pigeonhole optimize for branching pattern that is used to enable and disable interrupts used in code, this should lower amount of blocks that are compiled and avoid falling out of a block. Recompiled interrupt check in some cases to stay in block instead of falling out to dispatcher;\r\n\u2013 MFC: Fixed support for list transfer stall bit with partial support for out of order execution - also give Sync commands a size so they are properly detected by queue checks;\r\n\u2013 Fixed interrupt jump check, also change interrupt variable to atomic bool for ease of setting\/checking;\r\n\u2013 Interpreter\/Recompiler: Implemented DFCMGT;\r\n\u2013 SPU ASMJIT: Rewritten ROTH AVX-512 implementation;\r\n\u2013 Fixed Size and Tag clamping;\r\n\u2013 Allow reading of the RdSRR0 channel;\r\n\u2013 Allow writing to the WrSSR0 channel;\r\n\u2013 Remove SSSE3 dependency;\r\n\u2013 SPU ASMJIT: Added AVX-512 support to ROT, ROTM, ROTMA, SHL, ROTH, ROTHM, ROTMAH, SHLH, CLZ, SHUFB, CFLTU, CUFLT, BG, NOR, ROTI, CG, NAND, CGTH, CLGTH instructions;\r\n\u2013 SPU ASMJIT: Reordered some instructions for better throughput;\r\n\u2013 Redesigned LVSL and LVSR instructions;\r\n\u2013 Interpreter\/Recompiler: Fixes for ROTM, ROTMA, SHL, ROTH, ROTHM, ROTMAH, SHLH, ROTQMBYBI, ROTQMBY instructions;\r\n\u2013 SPU\/MFC: Checks for sync command before doing a list transfer;\r\n\u2013 SPU ASMJIT: Added AVX2 support to ROT, ROTM, ROTMA, SHL instructions;\r\n\u2013 SPU ASMJIT: Added support for 16-bit shifts using AVX2 (ROTHM, ROTMAH, SHLH);\r\n\u2013 SPU ASMJIT: Added support for XOP instruction set on ROT, ROTM, ROTMA, SHL, ROTH, ROTHM, ROTMAH, SHLH, ROTI, SELB, SHUFB instructions;\r\n\u2013 Emit VZEROUPPER: Workaround dirty AVX high state;\r\n\u2013 SPU ASMJIT: Rewrote ORX instruction;\r\n\u2013 SPU ASMJIT: Minor change to ROTH instruction: Only AVX-512 path is changed (third version). This instruction is extremely rare;\r\n\u2013 SPU ASMJIT: rewrote 128-bit shifts by bit: Six instructions changed to use xmm registers instead of gpr. ROTQBII, ROTQMBII, SHLQBII look better (shifts by imm). ROTQBI, ROTQMBI, SHLQBI changed for consistency (shifts by variable);\r\n\u2013 Removed redundant and harming check from tag update completion type 2 condition;\r\n\u2013 Implemented Stop Code 0x100;\r\n\u2013 sys_spu_thread_get_exit_status: Implemented missing check, now checks CELL_ESTAT condition as well;\r\n\u2013 Disassembler: Clamps SPU address - allows the SPU disassembler to nicely wrap around addresses instead of reporting \"illegal address\" on addresses outside of LS and resolves potential memory conflicts with main storage memory in the debugger;\r\n\r\nRSX\r\n\u2013 Optimized frame limiter;\r\n\u2013 Improved nv406e::semaphore_release;\r\n\u2013 Added WIP research into getting WCB (Write Color Buffers) working correctly. Should now mostly work correctly on OpenGL and correctly on Vulkan where on swizzle contexts are involved;\r\n\u2013 Enables blitting from main memory to local (RSX) memory using hardware acceleration. A few more titles no longer need the slow WCB path for this;\r\n\u2013 Fixed a bug where NVIDIA drivers would leak memory leak when window was minimized;\r\n\u2013 Fixed FP (Fragment Program) to take into account data range modifiers in SRC1. Fixes negative color values getting to the tone-mapping passes in some games (e.g. Dark Souls 2);\r\n\u2013 Do not discard depth buffer is stencil test is enabled (e.g. Vesperia);\r\n\u2013 Enabled ZCull conditional render on Vulkan;\r\n\u2013 Fixed D3D12 compiler crashes introduced by previous changes;\r\n\u2013 Fixed shader cache constantly compiling new shaders in some games;\r\n\u2013 Fixed default vertex attributes for undefined reads (e.g. Eternal Sonata, Ni no Kuni);\r\n\u2013 Fixed OpenGL texture flickering due to broken optimization path when WCB was enabled;\r\n\u2013 Synchronizes access to the present\/graphics queue during submit. It's simpler to just use a global lock in this case since at the moment we only use one queue and contention only happens during submit. Should fix some cases of device_lost when running NVIDIA + WCB;\r\n\u2013 Implemented depth clamp;\r\n\u2013 Fixes for stencil surface configuration when address is contested;\r\n\u2013 Work on depth\/color address resolve when address contention happens;\r\n\u2013 Implemented ZCull on the Vulkan render;\r\n\u2013 Shader overlay implementation allowing all kinds of transforms and passes;\r\n\u2013 Implemented binding color data for depth access for example using a RGBA->depth casting pass;\r\n\u2013 Fixed face winding on OpenGL;\r\n\u2013 Fragment program decompiler fixes for pack\/unpack with optional register gathering implemented;\r\n\u2013 Fixed potential crash in image_in when using CPU blit, or when unable to GPU scale the texture;\r\n\u2013 Avoids unprotecting memory unless writing is almost guaranteed to be near immediate. Should lower chances of race conditions on sections leading to corruption, but this is not a final fix. Should greatly reduce chances of encountering;\r\n\u2013 Fix for framebuffer setup: Ignore stencil flag if current depth format does not support stencil operation;\r\n\u2013 Fixed depth clipping: Should now correctly scale\/offset z for viewport, which may help in random clipping issues. tested game doesn't work on master without hacks (e.g. Vancouver 2010) but this fixes graphics display in it;\r\n\u2013 Fixed image_in arg decoding \/ swizzle: Fixes x\/y decoding, fixes some psl1ght blitting samples. After seeing countless weird values games seem to give for swizzle size, it seems the RSX just ignores the values, fixes cpu blit in age of booty;\r\n\u2013 Fixed invalid framebuffer crash and shader compile on D3D12;\r\n\u2013 Updated Vulkan dependencies: solves an issue where broken Windows drivers wouldn't register the ICD key and break the only detection method present on older Vulkan versions;\r\n\u2013 Added detection for Vulkan Xlib\/Wayland surface support at runtime (Linux\/BSD);\r\n\u2013 Several (many!) texture caches fixes;\r\n\u2013 Remove SSSE3 dependency;\r\n\u2013 Track last working state and reset to it if RSX starts to desync. This is especially useful when running Vulkan since the renderer will easily outpace the rest of the system when merely recording draw commands;\r\n\u2013 Ignore empty index buffer sets. Mark empty\/invalid IB sets as having 0 element counts;\r\n\u2013 Implement deferred swizzle remaps for twice-remapped resources;\r\n\u2013 Fix blit engine operations on RGB565;\r\n\u2013 Add a timeout on nv406e::semaphore_acquire. Requires further investigation to why some semaphore addresses always lock up;\r\n\u2013 Fix WCB causing hanging due to incorrect memory range approximation\r\n\u2013 Properly synchronize FIFO ctrl updates. Can improve stability in some cases. The issue still happens if the SPUs lag too far behind RSX;\r\n\u2013 Implement variable point size;\r\n\u2013 Implement FP instructions BEM, TEXBEM, TXPBEM (untested, rarely used);\r\n\u2013 Fix for LG2 FP instruction processing invalid values;\r\n\u2013 Framebuffer setup fixes to avoid lost draw calls;\r\n\u2013 Code style fixes;\r\n\u2013 Fixed alphakill;\r\n\u2013 Fixed color swizzle ordering for new blit destination surfaces;\r\n\u2013 Tweak to RSX hang detection;\r\n\u2013 Tweaks to sampler fallback paths for Vulkan;\r\n\u2013 Fixed regression with texture format G8B8;\r\n\u2013 Fixed typo in emulated primitive restart, fixing graphics with some AMD cards;\r\n\u2013 Fixed emulator hang that could happen when RSX thread crashes\/throws\/exits, making sure the event queue is cleared and disabled and the VBlank thread is shut down;\r\n\u2013 Added setting to disable shader preloading, useful for debugging\/testing purposes;\r\n\u2013 Added setting to force FIFO present mode option (workaround for recent MESA drivers);\r\n\u2013 Added setting to force Force primitive restart flag (should also work on MESA drivers);\r\n\u2013 Vulkan: Flush command queue on access violation event before attempting to touch texture cache in the event of access violations. This makes the device internal state consistent before texture operations. Fixes VK_ERROR_DEVICE_LOST in some cases when WCB is in use;\r\n\u2013 Fixed Z clipping using selective Z clamping;\r\n\u2013 Texture cache (blit engine) fix \u2013 Remove a conditional guess that has been properly reverse-engineered (it has been proven that in offsets are in x16 fixed point);\r\n\u2013 OpenGL: Use correct target for type when creating new textures. They are not always 2D;\r\n\u2013 OpenGL: Track stale cache entries for deleted textures. Avoids invalid texture getting bound to the pipeline when WCB is enabled;\r\n\u2013 Vulkan: Implement texture barrier for framebuffer feedback situations if strict mode is disabled. Strict mode bypasses all of this and just makes a duplicate copy which is the safest way to avoid the memory access hazard;\r\n\u2013 RSX: Improve framebuffer setup code. If pitch is 64, check the log2 dimension bits instead to determine size;;\r\n\u2013 Fixed B8 format render target swizzling;\r\n\u2013 Partial fix for extended clamp range draws; Try to preserve z information for draws outside the [0,1] range if the clip extents allow it. Range compression for [0,1] draws is disabled as it interferes with regular draw ops in a negative way, so this workaround will result in Z fighting on the near and far plane when extended range is used;\r\n\u2013 Implemented decoding a shuffle flag in the low bits of the texture remap vector. Seems to affect only some formats;\r\n\u2013 Texture format fixes: now rpcs3 almost passes all the texture formats test from autotests;\r\n\u2013 Removes a workaround in texture cache as it seems to not be required with texture formats fixed. There are almost no test cases for this but I expect no regressions;\r\n\u2013 OpenGL performance optimizations: Treats entire attribute buffer as a fixed heap addressed with index offsets instead of the \"sliding window\" approach that incurred overhead setting up the texture buffers. This was very expensive on NVIDIA drivers leading to very poor OpenGL performance on NVIDIA cards;\r\n\u2013 Minor fixes for overlays: Do not assume swap queue is in a well defined state since a flip can be requested externally. Also avoids processing unsupported glyphs in font handlers;\r\n\u2013 Implements swap control on Linux when using OpenGL;\r\n\u2013 Fixed the epsilon value that was replaced with decimal to fix NVIDIA issues back to the old value. It has to be very very small, 1.E-5 is not small enough, but 1.E-10 works well enough;\r\n\u2013 Fixed a race condition during startup using qt dialogs;\r\n\u2013 Clean up shaders by removing as much clutter as possible and only compiling subroutines actually used by the program. Makes decompiled SPIR-V easier to read and should hopefully mean less work for the drivers as well.\r\n\u2013 Reuse sampler objects (Vulkan) to avoid too many create\/delete cycles. Wont do much for performance but its the right thing to do and it makes debugging alot easier;\r\n\u2013 Removes subpass dependencies on Vulkan. They have a very high cost on AMD GPUs especially older GCN1 and maybe GCN2 cards and can easily drop throughput by 80%+ (Tested on R9 270x);\r\n\u2013 Framebuffer setup improvements: Improves fast paths in framebuffer setup code and allows resource reuse when using OpenGL instead of constantly recreating new resources and binding;\r\n\u2013 OpenGL: Do not rely on OpenGL null texture; instead, provide our own black null texture to make reads from non-existent textures return (0, 0, 0, 1);\r\n\u2013 Implemented FBO flush-always when WCB is enabled. This is for games that read back the currently bound render target. Fixes some missing graphics in some games especially when using the blit debugger (force_cpu_blit);\r\n\u2013 Vulkan API compliance fixes;\r\n\u2013 Synchronize blit engine resources with cell to avoid data loss. A typical scenario would be where an image is rendered on RSX pixel pipeline to render target A which is copied to location B using blit engine. Cell then reads back the pixels at B to do some image processing on SPU and re-uploads the data from another location C. Without synchronizing reads and writes, data at B would not exist from Cell's point of view. Fixes some problems in some games like Journey.\r\n\u2013 Vulkan: Minor memory management fixes. Avoids running out of memory during a draw call;\r\n\u2013 FP: Explicitly gather or discard writes to output if none is defined. While the GL spec makes this work correctly, undefined output in SPIR-V updated the render target with blue pixels;\r\n\u2013 texture cache: Fixed component ordering on depth surfaces \u2013 all components should always read R (e.g. solves TOCS\/TOCS2 blur issue);\r\n\u2013 Fixed a bug in multidraw implementation and range splitting of disjoint draw calls (e.g. solves flickering in R&C games);\r\n\u2013 Improved workaround for AMD Vulkan driver where u16 index buffers would mistakenly break primitive restart due to fetching of the restart index T(-1), likely due to broken type identification;\r\n\u2013 General minor optimizations all round;\r\n\u2013 Optimize texture readback performance by tracking flushable targets and performing transfers ahead of time;\r\n\u2013 Implemented base swapchain type to remove dependency on WSI providers being present. This is the case when attempting to run Vulkan from a secondary GPU whilst the primary GPU is an NVIDIA one on Linux. Two additional display providers other than the WSI one are also provided, one for WIN32 and another for X11 to cover the common cases. This allows use of a secondary GPU on Linux which was a big problem for graphics development on Linux. Note that while mesa drivers can present data from secondary GPUs, proprietary drivers do not, and often times the user will have the NVIDIA GPU as primary to avoid problems with X. Overhead of using the native software fallbacks is currently about 4ms at 720p, 7ms at 1080p (~250FPS max at 720p, ~125FPS max at 1080p). While this change in itself may not mean much to most users, the possibilities with display out are now infinite. Additional swapchain providers can be added to do cool things like writing images to file, injecting custom postfx, encoding image output to video and streaming over a network, etc, etc;\r\n\r\nAudio\r\n\u2013 Fixes for ALSA backend, improved performance;\r\n\u2013 ALSA: Added Start Threshold parameter;\r\n\r\nNative UI (RSX Overlay)\r\n\u2013 Implemented core for native user interface support in rpcs3;\r\n\u2013 Implemented save dialog with native UI;\r\n\u2013 Implemented message dialog and progress dialog;\r\n\u2013 Implemented trophy popup;\r\n\u2013 Implemented shader compiling notification;\r\n\u2013 Properly handle failed initialization and fallback paths;\r\n\u2013 Properly handle TTF search and loading as well as fallback paths;\r\n\u2013 Fixed native UI save_dialog when there are no saves;\r\n\u2013 Properly handle disconnected pads on overlay;\r\n\u2013 Added fallback path in dev_flash for glyphs and prevents Vulkan from freezing if icons are non-existent;\r\n\r\nTrophies\r\n\u2013 Fixed a bug on trophy manager which would hide some games;\r\n\u2013 Returns correct disk space requirements;\r\n\u2013 Check both bdvd and hdd locations;\r\n\u2013 Fixed trophy initialization for Game Data (game patch);\r\n\u2013 sceNpTrophyGetRequiredDiskSpace: Take VFS into account for trophy directory;\r\n\r\nFirmware (HLE)\r\n\u2013 Implements _sys_prx_load_module_by_fd, _sys_prx_load_module_on_memcontainer_by_fd;\r\n\u2013 cellSaveData: Bugfixes;\r\n\u2013 cellSaveData: Implemented Savedata delete operation;\r\n\u2013 Fixed an issue with cellMsgDialog;\r\n\u2013 Fixed an issue with exitspawn (autoexit option);\r\n\u2013 Fixed sys_fs_open on MSELF files: previously it would move the file pointer, but not reset it;\r\n\u2013 sys_usbd: Initial work on syscalls;\r\n\u2013 sys_memory: Lower maximum size for memory block to fake OS size \u2013 Reports available memory minus another fake block that can be used for the OS;\r\n\u2013 cellMsgDialog: Added SetMsg() for changing main text;\r\n\u2013 cellGame: Don't write empty TITLE_IDs in PARAM.SFO;\r\n\u2013 cellVDec\/cellVPost: Avoids recreating SwsContext every frame;\r\n\u2013 cellSaveData: Avoids passing vm memory to fs::file;\r\n\u2013 cellPadSetPortSetting: Don't skip setting port settings when no controller is connected;\r\n\u2013 cellPad: Fixed port status query -> disconnected devices don't cripple following devices by decreased now_connect;\r\n\u2013 cellPad: Initialize devices as disconnected;\r\n\u2013 cellGameDataCheckCreate2: Fixed PARAM.SFO;\r\n\u2013 Implemented psf::assign;\r\n\u2013 cellGameSetParamString: Potential fix;\r\n\u2013 cellGameBootCheck: Experimental fix, assuming dirName is read-only;\r\n\u2013 cellSysutil: Registered _ZN8cxmlutil7SetFileERKN4cxml7ElementEPKcRKNS0_4FileE, _ZN4cxml8Document5WriteEPFiPKvjPvES3_ and _ZN4cxml8Document12RegisterFileEPKvjPNS_4FileE functions;\r\n\u2013 cellWebBrowser\/sceNpSns: Stubbed some functions;\r\n\u2013 cellGame: Stubbed cellHddGameSetSystemVer, cellGameDataSetSystemVer;\r\n\u2013 cellSearch: Overhauled previous stub implementation, notable improvements;\r\n\u2013 cellGame: Fixed a bug in cellHddGameCheck and cellGameBootCheck that caused memory access violations;\r\n\u2013 cellUserInfo: Fixed a bug that caused memory access violations in cellUserInfoGetStat;\r\n\u2013 sys_fs_unlink: Return CELL_ENOENT if path is an empty string;\r\n\u2013 sys_fs_stat: Return CELL_EFAULT when path variable is not defined;\r\n\u2013 cellGame: Better stub cellGameUpdateCheckStartAsync, cellGameUpdateCheckFinishAsync\r\n\u2013 cellRec: Improved stubbed implementation by adding its respective callbacks;\r\n\u2013 cellVideoExport: Improved stubbed implementation by adding its respective callbacks;\r\n\u2013 cellVideoUpload: Improved stubbed implementation by adding its respective callbacks;\r\n\u2013 cellPhotoExport: Improved stubbed implementation by adding its respective callbacks;\r\n\u2013 cellMusic: Improved stubbed implementation by adding its respective callbacks;\r\n\u2013 cellMsgDialog: Fixed a null pointer dereference;\r\n\u2013 sys_gpio: Implemented sys_gpio_get and sys_gpio_set syscalls;\r\n\u2013 sceNpMatcingInt: Registers module and the following functions: sceNpMatchingGetRoomMemberList, sceNpMatchingJoinRoomGUI, sceNpMatchingGetRoomListGUI, sceNpMatchingSendRoomMessage;\r\n\u2013 sys_fs: Implemented 01000000 flag (found only in Rockband games);\r\n\u2013 sys_libc_: Implemented _sys_qsort;\r\n\r\nNetwork\r\n\u2013 Stubs SOCK_DGRAM_P2P to handle some regressions caused by the Network overhaul;\r\n\u2013 Added support for unspec sockets (YouTube app);\r\n\u2013 Forces AF_INET (Youtube app);\r\n\u2013 Fixed lv2_socket id_base;\r\n\r\nInput\r\n\u2013 Overhauled pad_settings dialog;\r\n\u2013 Added a simple timer and only saves to configuration upon pressing the save button;\r\n\u2013 XInput: Added full remapping, rumble settings, deadzones;\r\n\u2013 DualShock4: Added remapping;\r\n\u2013 Evdev: Added remapping, deadzones;\r\n\u2013 MMJoy: Added remapping, deadzones;\r\n\u2013 MMJoy: Improved multi controller support;\r\n\u2013 MMJoy: Prioritizes button presses due to constant axis events;\r\n\u2013 Added fallback in FindKeyCode to prevent crashes on incompatible config;\r\n\u2013 Implemented blacklist to filter noise in pad dialog;\r\n\u2013 MMJoy: Handle Axis and POV capabilities;\r\n\u2013 MMJoy: Handle MMJoy reconnection;\r\n\u2013 Fixed filter button for evdev and DualShock 4;\r\n\u2013 Improved evdev and MMJoy stick input;\r\n\u2013 DualShock 4: Fixed led for ds4 when connected by bluetooth;\r\n\u2013 DualShock 4: Fixed a regression on initial DS4 connection;\r\n\u2013 Fixed regression on numpad keys;\r\n\u2013 Evdev: Added positive axis list yml to handle 0+ range sticks;\r\n\u2013 MMJoy: Improved settings dialog, changed threshold behavior;\r\n\u2013 Evdev: Improve MMJOY settings dialog \/ change threshold behavior;\r\n\u2013 Evdev: Misc fixes, fixed directions, sticks and first rumble implementation;\r\n\u2013 Implemented mouse button mapping, improved keyboard;\r\n\u2013 Fixed connection count;\r\n\u2013 Improved cellKB keyreleases and autorepeat;\r\n\u2013 Enabled XInput configs with disconnected devices;\r\n\u2013 Implemented Input Profiles;\r\n\r\nGUI\r\n\u2013 Implemented new progress_dialog for installations;\r\n\u2013 Redesigned settings dialog to use an horizontal layout, solves some small screen issues;\r\n\u2013 Uses global AppIcon instead of setting it in every Dialog;\r\n\u2013 Moved Disable Vertex Cache option back to the GPU tab;\r\n\u2013 Show total number of LLVM objects that are to be compiled on LLVM compilation dialogs;\r\n\u2013 Fixed compatibility column sorting;\r\n\u2013 Fixed Register Editor;\r\n\u2013 Fixed CurrentSelectionIconPath();\r\n\u2013 Fixed deadzone preview size on high dpi;\r\n\u2013 Fixed GameList icon backgrounds on existing themes;\r\n\u2013 Handles zero-width columns in game list;\r\n\u2013 Implemented simple find dialog for logs;\r\n\u2013 Use Qt for error reports;\r\n\u2013 Fixed icon size actions;\r\n\u2013 New themes: Darker Style and ModernBlue by TheMitoSan;\r\n\u2013 Added commit hash to the game panel with non master builds;\r\n\u2013 Removed obsolete and faulty m_icon_color. RepaintGui does it already;\r\n\u2013 Updated compatibility colors to match the new ones from the website;\r\n\u2013 Game list: Improved deduplication logic;\r\n\u2013 Updated Qt to version 5.10.1 (also updated AppVeyor and Travis to use 5.10);\r\n\u2013 Fixed gs_frame spawning on monitor other than the one the main window is on. Now spawns the GSFrame on top of the RPCS3 main window;\r\n\u2013 Fixed scrolling in Game Grid;\r\n\u2013 Improved VFS (virtual filesystem) dialog;\r\n\r\nWindows\r\n\u2013 File: Clamps utime range;\r\n\u2013 Readme: Updated build instructions to include prebuilt library binaries downloads;\r\n\u2013 Fixed free space check;\r\n\u2013 Added sha256 hashing of builds for checksum purposes;\r\n\u2013 Added a separate OpenSSL artifact containing the required libs to make compatibility database fetching work. These binaries are distributed by AppVeyor as part of the build environment. Users can be directed to download and extract the binaries to their local rpcs3 directory (e.g. in the quickstart guide). A warning can also be included regarding legal issues pertaining to using OpenSSL, if any;\r\n\u2013 Package artifacts using 7z format, reduces rpcs3 artifact size from ~20MB to ~14MB;\r\n\u2013 Compat database is fetched and packaged after the build has finished. Failed DB downloads are (hopefully) accounted for by adding some basic fault tolerance using powershell + AppVeyor caching;\r\n\u2013 Changes Windows master builds artifact version format to: rpcs3-{tag}-{commit_count}-{commit_hash}_win64.7z;\r\n\u2013 Changes Windows pull request artifact version format to: rpcs3-{tag}-{commit_hash}_win64.7z;\r\n\r\nLinux + BSD:\r\n\u2013 Installs GUI Themes to \/usr\/share\/rpcs3 and icons to Icons in executable directory and loads them from there;\r\n\u2013 Fixed a bug on fs::dir::open, now returns false on failed metadata instead of crashing;\r\n\u2013 Added support for Vulkan on Wayland;\r\n\r\nLinux\r\n\u2013 Implemented set_ideal_processor_core;\r\n\u2013 Readme: Updated Fedora instructions with required packages;\r\n\u2013 Readme: Added libpulse-dev;\r\n\u2013 Readme: Added OpenSUSE instructions;\r\n\u2013 Workaround for NVIDIA Linux bug: For some reason, using 1.E-x notation does not work on NVIDIA Linux. Could be a bug in SPIR-V generator or the driver itself;\r\n\u2013 Fixed commit count on AppImage (TravisCI) builds by unshallowing git clone;\r\n\u2013 Implemented fs::unshare;\r\n\u2013 AppImage: Now compiling with Clang 5.0 instead of Clang 4.0;\r\n\u2013 AppImage: Removes libfreetype.so.6, fixes AppImages for some users;\r\n\u2013 Added an easy way for package builders to disable native cpu optimizations (-march=native);\r\n\u2013 Changes Linux master builds appimage version format to: rpcs3-{tag}-{commit_count}-{commit_hash}_linux64.AppImage, in sync with the Windows builds;\r\n\r\nBSD\r\n\u2013 Fixed set_ideal_processor_core on several BSD distributions;\r\n\u2013 Fixed a bug with LLVM JIT on FreeBSD;\r\n\u2013 Uses glslang, HLSL, OGLCompiler, SPIRV, OSDependent system libraries when building;\r\n\r\nMisc\r\n\u2013 Fixed command line arguments passed to rpcs3;\r\n\u2013 Added libswscale CMake detection as the component is mandatory to build the project;\r\n\u2013 Removed libswresample as the component was not used to build the project;\r\n\u2013 Simplified ALSA, GLEW, Qt, ZLIB detection\/integration in CMake;\r\n\u2013 Cleaned up rpcs3\/CMakeLists.txt;\r\n\u2013 Fixed log size limitations;\r\n\u2013 Implemented set_ideal_processor_core for MacOS;\r\n\u2013 Bump CMake requirement to 3.1.0+;\r\n\u2013 Fixed debug without LLVM build;\r\n\u2013 Use depth:false instead of depth:bigNumber for unshallowed clone on TravisCI;\r\n\u2013 Silenced some build warnings;\r\n\u2013 Removes GIT_VERSION's incorrect commit count on non-master Pull Request builds \u2013 make GIT_VERSION only be the Commit ID in those cases (e.g: 0.0.4-abcdefgh instead of 0.0.4-3-abcdefgh);\r\n\u2013 Replaced make by Ninja build system on Travis;\r\n\u2013 Pass missing arguments to _sys_process_exit logging function;\r\n\u2013 Map and update pugixml with the upstream repository instead of the one from RPCS3;\r\n\u2013 Log sys_fs_utime values;\r\n\u2013 Bump last PS3 firmware version indicator from 4.81 to 4.82;\r\n\u2013 Travis: Updated URLs to retrieve glew and Vulkan deb packages;\r\n\u2013 Updated OpenAL externals to 1.18.2;\r\n\u2013 Updated GL header to 20180114;\r\n\u2013 Remove ps3emu_api unused files that were really never used for anything;\r\n\u2013 Update LLVM submodule URL (to rpcs3\/llvm);\r\n\u2013 Added ignore=dirty to hidapi submodule;\r\n\u2013 AppVeyor: Various formatting and changes to the file structure (mainly cmd -> powershell for better readability);\r\n\u2013 Updated versioning: rpcs3 latest release tag is now fetched using git describe, no need to manually update appveyor.yaml for each release or milestone;\r\n\u2013 Added vscode and kdevelop files to gitignore;\r\n\u2013 Fixed quoting in CMake files, solved an issue with packaging for NixOS;<\/pre>\n<p>&nbsp;<br \/>\n<span class=\"embed-youtube\" style=\"text-align:center; display: block;\"><iframe loading=\"lazy\" class=\"youtube-player\" width=\"500\" height=\"282\" src=\"https:\/\/www.youtube.com\/embed\/fXNd40hLdZs?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=fr-FR&#038;autohide=2&#038;wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\"><\/iframe><\/span><br \/>\n&nbsp;<br \/>\n<a href=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3_Jan2018.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-54876\" src=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3_Jan2018.png\" alt=\"\" width=\"393\" height=\"86\" srcset=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3_Jan2018.png 1091w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3_Jan2018-300x66.png 300w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3_Jan2018-768x168.png 768w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3_Jan2018-1024x224.png 1024w\" sizes=\"auto, (max-width: 393px) 100vw, 393px\" \/><\/a><\/p>\n<p><a href=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3-2_Jan2018.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter  wp-image-54877\" src=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3-2_Jan2018.png\" alt=\"\" width=\"361\" height=\"307\" srcset=\"https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3-2_Jan2018.png 740w, https:\/\/www.emu-france.com\/wp-content\/uploads\/2018\/02\/rpcs3-2_Jan2018-300x255.png 300w\" sizes=\"auto, (max-width: 361px) 100vw, 361px\" \/><\/a><\/p>\n<p>&nbsp;<br \/>\n<a href=\"https:\/\/github.com\/RPCS3\/rpcs3\/releases\">Site officiel des sources et versions compil\u00e9es<\/a> (<a href=\"https:\/\/ci.appveyor.com\/project\/rpcs3\/rpcs3\/branch\/master\/artifacts\">builds<\/a>).<br \/>\n&nbsp;<br \/>\n<p class=\"p_telecharger_icone_zip\"><a class=\"telecharger_icone_zip\" href=\"https:\/\/www.emu-france.com\/?wpfb_dl=7158\" title=\"Download RPCS3\">T\u00e9l\u00e9charger RPCS3 v0.0.40 Alpha (34.4 Mo)<\/a><\/p><\/p>\n<p class=\"p_site_officiel\"><a class=\"site_officiel\" href=\"http:\/\/rpcs3.net\/\" target=\"_blank\">Site Officiel<\/a><\/p>\n<p class=\"p_en_savoir_plus\"><a class=\"en_savoir_plus\" href=\"https:\/\/www.emu-france.com\/emulateurs\/5-consoles-de-salon\/301-sony-playstation-3\/\">En savoir plus&#8230;<\/a><\/p>\n<div class=\"fcbkbttn_buttons_block\" id=\"fcbkbttn_left\"><div class=\"fb-share-button  \" data-href=\"https:\/\/www.emu-france.com\/?p=54822\" data-type=\"button_count\" data-size=\"small\"><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Cr\u00e9\u00e9 par DH &amp; Hykem (et rejoint par un ensemble de d\u00e9veloppeurs), RPCS3 est un \u00e9mulateur de Playstation 3 multi-plateformes qui a pour objectif de devenir le plus complet possible. Il fait principalement office de d\u00e9sassembleur mais pousse la performance &#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1],"tags":[],"class_list":["post-54822","post","type-post","status-publish","format-standard","hentry","category-par-defaut","uentry","postonpage-1","odd","post-author-Jets"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pKi2R-ege","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/54822","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=54822"}],"version-history":[{"count":7,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/54822\/revisions"}],"predecessor-version":[{"id":54878,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/54822\/revisions\/54878"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=54822"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=54822"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=54822"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}