{"id":52914,"date":"2017-11-13T00:01:56","date_gmt":"2017-11-12T22:01:56","guid":{"rendered":"http:\/\/www.emu-france.com\/?p=52914"},"modified":"2017-11-13T00:01:56","modified_gmt":"2017-11-12T22:01:56","slug":"consoles-de-salon-rpcs3-v0-0-4-alpha","status":"publish","type":"post","link":"https:\/\/www.emu-france.com\/?p=52914","title":{"rendered":"[Consoles de salon] RPCS3 v0.0.4 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.3 <\/strong><\/em><br \/>\n&nbsp;<br \/>\n<em>\u00bb Resolution Scaling (up to 10K)!<br \/>\n\u00bb Anisotropic Filtering (up to 16x)!<br \/>\n\u00bb Linux AppImages!<br \/>\n\u00bb Trophies!<br \/>\n\u00bb Save Data Manager!<br \/>\n\u00bb Basic Networking Support (YouTube now works)!<br \/>\n\u00bb Evdev Controller Support!<br \/>\n\u00bb Improved Linux and BSD Support!<br \/>\n\u00bb Low-Level Emulation of cellGcm: Even more games now working!<br \/>\n\u00bb Huge Compatibility and Performance Improvements!<br \/>\n\u00bb Huge GUI Improvements!<br \/>\n\u00bb And TONS of Bugfixes as always!<br \/>\n&nbsp;<br \/>\n<strong>Core<\/strong><br \/>\n\u2013 Fixes idm::init, fxm::init<br \/>\n\u2013 Re-enable thread_local for all platforms<br \/>\n\u2013 Fixes ipc_manager::add<br \/>\n\u2013 Fixes access violation handler<br \/>\n\u2013 Fixes decrypt_self usage<br \/>\n\u2013 Patch: new &lsquo;load&rsquo; syntax: [load, path_name1] &#8211; load sequence, [load, path_name2, -0x40] &#8211; same, but modify the addresses by -64<br \/>\n\u2013 mutex.cpp: New concept update (incomplete)<br \/>\n\u2013 Escapes problematic characters in VFS<br \/>\n\u2013 Added support for passing commandline arguments to ELF executable<br \/>\n&nbsp;<br \/>\n<strong>Memory<\/strong><br \/>\n\u2013 Allow overlapping ranges in cellGcmMapEaIoAdress with coherency check<br \/>\n\u2013 Fix deadlock in vm::unmap<br \/>\n\u2013 sys_mmapper: minor range fix<br \/>\n\u2013 Improved lv2_memory object<br \/>\n\u2013 Fixed utils::memory_decommit<br \/>\n\u2013 vm.cpp cleanup<br \/>\n&nbsp;<br \/>\n<strong>PPU<\/strong><br \/>\n\u2013 Sets PPU Recompiler (LLVM) as default option instead of PPU Interpreter (Fast)<br \/>\n\u2013 Implemented PPU Page Faults<br \/>\n\u2013 Fixed a crash on Recompiler due to null jit<br \/>\n\u2013 Implemented CALL_FUNC<br \/>\n\u2013 Fixes for instruction editor<br \/>\n\u2013 Optimizes PPU module loading<br \/>\n\u2013 ppu_acontext draft (Work in Progress)<br \/>\n&nbsp;<br \/>\n<strong>SPU<\/strong><br \/>\n\u2013 Re-implements timing in the SPU concurrency watchdog code. It is now possible to set a hint number of threads with little performance loss, e.g it is now possible to set &lsquo;preferred threads&rsquo; to something like 2 and set a penalty of 0 to significantly improve smoothness if running a low end CPU. Note that games which run better with low &lsquo;preferred threads&rsquo; values still need a delay penalty greater than 0 (leave it at 3)<br \/>\n\u2013 Copies sys_spu_segment info in SPU Thread Group<br \/>\n\u2013 Implemented syscalls _sys_spu_image_import, sys_spu_elf_get_information, sys_spu_elf_get_segments, _sys_spu_image_get_information, _sys_spu_image_get_segments, sys_event_port_connect_ipc<br \/>\n\u2013 sys_spu_image: Cleanup and extends templates<br \/>\n\u2013 Fixed sys_raw_spu_load, sys_raw_spu_image_load<br \/>\n\u2013 RawSPU: Implemented Prxy_TagStatus_offs (rollback to immediate MFC transfers)<br \/>\n\u2013 RawSPU: Implemented read SPU_NPC_offs<br \/>\n\u2013 RawSPU: Implemented read SPU_RunCntl_offs<br \/>\n\u2013 Adds vm::page_protect to SPU segments<br \/>\n\u2013 Implemented FM instruction for Interpreter Fast and Recompiler ASMJIT<br \/>\n\u2013 Fixes a bug in FMA\/FMS\/FNMS where cmpunord was used as an optimization but inadvertently broke some corner cases<br \/>\n\u2013 Implemented readch(mfc_cmd)<br \/>\n\u2013 Save and restore mfc cmd: SPU accuracy change, docs state registers are in an &lsquo;undefined state&rsquo; after writing to mfc_cmd, but in practice though, they are just left alone<br \/>\n&nbsp;<br \/>\n<strong>HLE<\/strong><br \/>\n\u2013 Fixed sys_get_random_number, sys_rwlock_runlock, sys_rwlock_wlock, sys_rwlock_wunlock, sys_semaphore_wait (on timeout), sys_event_queue_receive, cellOskDialogLoadAsync, _sys_strncasecmp, cellGameGetParam, cellGameSetParam<br \/>\n\u2013 Fixed syscalls _sys_lwcond_signal, _sys_lwcond_signal_all, sys_event_port_connect_ipc<br \/>\n\u2013 Rewritten sys_mempool to be thread safe<br \/>\n\u2013 Registered new functions on cellCrossController, cellOskDialog, cellSailRec, cellSysutil, sceNp, sceNp2, sceNpSns, sceNpTus, cellRec, cellGameExec, cellGameResc, cellSysutilAvc2, cellSysutilAvconfExt, cellSearchUtility, cellUsbd, sys_net, cellHttp, cellNetCtl, cellAtracMulti, cellAtrac, cell_FreeType2<br \/>\n\u2013 Fixed sys_timer initial set state to correctly be STOP instead of RUN<br \/>\n\u2013 cellGame: Minor refactoring<br \/>\n\u2013 cellRec: Minor fixes<br \/>\n\u2013 Registered _sys_rwlock_trywlock<br \/>\n\u2013 Re-implemented the &lsquo;Hook static functions&rsquo; option<br \/>\n\u2013 Refactored sys_lwmutex, sys_lwcond<br \/>\n\u2013 Implemented cellSslCertificateLoader, cellHttpUtilParseUri,  _sys_tolower, _sys_toupper, __sys_look_ctype_table<br \/>\n\u2013 Fixed backspace in onScreenKeyboard<br \/>\n\u2013 Rewritten cellVideoOutConfigure, _sys_memcmp, _sys_strlen, _sys_strcmp, _sys_strncmp, _sys_strcat, _sys_strcrp, _sys_strrch, _sys_strncpy, _sys_strncat<br \/>\n\u2013 Implemented fs::file::get_handle<br \/>\n\u2013 Implemented fs::error::notempty<br \/>\n\u2013 cellGame: Add missing game categories AT, AM and SG<br \/>\n\u2013 Fixed fs::rename<br \/>\n\u2013 Fixed crash in sys_tty_write() if the return buffer for the written length is NULL (Resident Evil 5 demo does this)<br \/>\n\u2013 Improve sys_fs_ftruncate: Handles stream API lock (EBUSY) and handles append mode<br \/>\n\u2013 sys_fs: use g_tls_error for diagnostic. Affected syscalls: sys_fs_open, sys_fs_opendir, sys_fs_stat, sys_fs_mkdir, sys_fs_fcntl (get free space)<br \/>\n\u2013 Implemented checks for FNID duplication<br \/>\n\u2013 Implemented MFF_HIDDEN for VNIDs (Now possible: \u00ab\u00a0`REF_FUNC(&#8230;).flag(MFF_HIDDEN);`)<br \/>\n\u2013 Implemented syscalls _sys_prx_get_module_info, _sys_process_exit, _sys_prx_load_module_on_memcontainer, sys_ss_random_number_generator<br \/>\n\u2013 Fixed _sys_strncasecmp<br \/>\n\u2013 Exitspawn support renewal: Implemented _sys_process_exit2 syscall, Rewritten sys_game_process_exitspawn, Rewritten sys_game_process_exitspawn2, Implemented _sys_process_atexitspawn, Implemented _sys_process_at_Exitspawn and some other changes<br \/>\n\u2013 sys_fs_mkdir: implement ENOENT<br \/>\n\u2013 Fixed several filesystem errors where behavior differed a lot from a real PS3<br \/>\n\u2013 cellKb: Returns invalid parameter if port number is bigger than number of connected keyboards<br \/>\n\u2013 cellVdec: Added stolen TLS hack<br \/>\n\u2013 Fixed a callback regression on sceNpManager<br \/>\n\u2013 Fixed \/dev_bdvd\/ for exitspawn<br \/>\n\u2013 Fixed NPDRM exitspawn<br \/>\n\u2013 Changes CryptAcquireContextW to try CRYPT_NEWKEYSET flag if key container doesnt exist already<br \/>\n\u2013 Make cellMouseGetDataList return CELL_MOUSE_ERROR_NO_DEVICE if mouse handler is set to null<br \/>\n&nbsp;<br \/>\n<strong>LLE<\/strong><br \/>\n\u2013 Implemented LLE emulation of cellGcm<br \/>\n\u2013 Added libad_async, libad_billboard_util, libad_core to the list of modules to LLE. Makes several games start working with PPU Recompiler<br \/>\n&nbsp;<br \/>\n<strong>RSX<\/strong><br \/>\n\u2013 Fixed vertex decompiler to support two argument destinations<br \/>\n\u2013 Fixed a buffer overrun crash<br \/>\n\u2013 Re-implemented the weak vertex cache using unordered_map for faster search performance<br \/>\n\u2013 Re-implemented the texture cache also using unordered_map for faster search as well<br \/>\n\u2013 Properly synchronizes the texture cache to avoid random rsx lockup<br \/>\n\u2013 Implemented zcull occlusion stats using native occlusion queries<br \/>\n\u2013 Implemented conditional rendering as well using the emulated zcull unit<br \/>\n\u2013 Added conditional shared locks that take a flag for consideration to avoid recursive lock acquisition<br \/>\n\u2013 Yield instead of sleeping rsx thread<br \/>\n\u2013 Fixed a situation where a query read-back is requested while zcull render is still active<br \/>\n\u2013 Re-implemented the RSX driver side of the vertex processing stage. Vertex attribute data is no longer processed on the CPU freeing up resources otherwise used up dealing with this task. This moves a lot of work over GPU side and slow iGPUs might become a bottleneck. Due to the increased complexity of the shaders, a preloaded shader cache system is also included to allow the shader compilation and linking to happen outside of gameplay. This fixes the hitching and stuttering ingame at the cost of longer loading times. The cache can be deleted from the context menu<br \/>\n\u2013 Fixed immediate indexed rendering when immediate index array is provided but vertex data is sourced from registers and array inputs (Wolfenstein)<br \/>\n\u2013 Don&rsquo;t keep invalidated objects around too long. Games like Tales of Vesperia seem to be using a random memory allocator with very low collision chance. This means objects are very unlikely to be reused in such games leading to pile-up<br \/>\n\u2013 Ignore sending system reserved semaphores to renderer<br \/>\n\u2013 Fixed sca register assignment in vertex decompiler. Fixes some vertex shaders: Text in little big planet and chunks of graphics in alteir games<br \/>\n\u2013 Implemented pixel size 16<br \/>\n\u2013 Minor improvements to shader cache to reduce first time compile stutter and number of pipeline objects<br \/>\n\u2013 Fixed VP ARL opcode: respect the vector write mask<br \/>\n\u2013 Implement QUAD_STRIP by redirecting to TRIANGLE_STRIP. This can fail in some rare cases, but that&rsquo;s not something that can be fixed with indexing anyway. Quads are planar, but adjacent triangles need not be<br \/>\n\u2013 Added nullptr check on sys_rsx_context_attribute for games that call it before sys_rsx_memory_allocate. This inevitably caused RPCS3 to crash when it doesn&rsquo;t on a PS3<br \/>\n\u2013 RSX thread recovery in the event of an unknown command [WIP, still dies\/loops infinitely if unmapped addresses are provided]<br \/>\n\u2013 Unified texture cache for Vulkan and OpenGL. This means that any bugs fixed for one backend should carry over making development easier<br \/>\n\u2013 Implemented draw call batching for the slow games that would throw thousands of small draws at the hardware. Significantly speeds some some games. There is an AMD driver bug that will cause missing graphics but it has been reported upstream<br \/>\n\u2013 Added support for split draw ranges which would otherwise assert in RSXThread<br \/>\n\u2013 Fixed some shader decompiler bugs (DBZ Raging Blast games)<br \/>\n\u2013 Fixed section scanning range for early reject (fixes hands)<br \/>\n\u2013 Texture cache fixes: Updates section flags when requested, fixes nullptr dereference: cached_dest will be null if dst_is_render_target is true (fixes a crash in some games when using GPU texture scaling)<br \/>\n\u2013 Makes the 3rd texture dimension matter: Mark cube map and 3D textures as separate from 2D surfaces in the cache. Also adds an error if a type mismatch is detected<br \/>\n\u2013 Added support for internal resolution scaling. Compatible with most applications out-of-the-box. Note that strict rendering mode disables this scaling<br \/>\n\u2013 Enabled forced anisotropic filtering up to 16x<br \/>\n\u2013 Improves memory protection behavior when strict mode is off. Use full range protection without trampling shared pages instead of only checking a single page. This fixes some missing graphics in some games without requiring strict mode (id tech 5)<br \/>\n\u2013 When encountering corrupt put\/get registers do not discard entire commandbuffers in case there are semaphores held<br \/>\n\u2013 Fixed src\/dst framebuffer detection<br \/>\n\u2013 Fixed memory protection checks when strict mode is disabled. Should help prevent WCB from hanging the emulator<br \/>\n\u2013 Re-implements index buffer expansion\/emulation and improves use of the primitive restart flag<br \/>\n\u2013 Fixed clear commands for depth-only passes. This removes the need for the invalidate cache hack<br \/>\n\u2013 Restructures the texture cache to contain section manipulation to one function<br \/>\n\u2013 Fixed some leaking memory sections<br \/>\n\u2013 Fixed surface subsection sampling (Turbo: Super Stunt Squad)<br \/>\n\u2013 Workaround fixes for crashes due to 0 pitch (VirtualMemory.cpp crash)<br \/>\n\u2013 Better detection of situations that would require memory stitching (framebuffer blit operations). Should fix black screen regressions in some games<br \/>\n\u2013 Disables draw call batching when strict mode is enabled. Strict mode should always use the safest option and the batching solution has been shown to fail in rare cases (Okami HD)<br \/>\n\u2013 Fixed a critical bug in volatile attribute layouts that was introduced during vertex rewrite but went unnoticed. Likely fixes corrupt graphics or black screen in some games, probably only affects 2D elements since it requires immediate-mode drawing plus at least one referenced data register to trigger this condition<br \/>\n\u2013 Invalidates surface store address when tile unbound<br \/>\n\u2013 Makes dmactrl get &lsquo;readonly&rsquo;: rsx accuracy change, currently its possible to edit the get ptr from the game side and cause the rsxthread to freak out. It should only be able to be changed from the syscall, so we use an internal variable to keep track of command buffer position and write it to get ptr now<br \/>\n\u2013 Tag framebuffer memory when strict mode is enabled to check if content has been written to. This way, framebuffer contents can be ignored if they are known to be incorrect<br \/>\n\u2013 Rework memory protection and ignore flush requests if the data has already been written to the CPU. Speedup when using WCB<br \/>\n\u2013 Prevents recursive access violations that cause hanging when WCB is enabled<br \/>\n\u2013 Tries to determine pixel offsets when nv308a::color is indexed with a non-zero y coordinate. Hopefully fixes bugs where shader ucode is not properly written to rsx mem leading to failing to compile shaders<br \/>\n\u2013 Only reject framebuffer memory if it appears inside an actual texture. Ideally should destroy such textures if they exist since the framebuffer will replace the data as it is rendered to, but such a case may not even exist in practice<br \/>\n\u2013 Reimplemented the fragment shader pipeline (partially) and optimized cache access<br \/>\n\u2013 Implemented texture data casts where possible (1D <-> 2D)<br \/>\n\u2013 Implemented render-to-cubemap [realtime reflections] (still incomplete, but should work most of the time)<br \/>\n\u2013 Fixes for texture size detection using rsx antialias modes<br \/>\n\u2013 Fixes for hanging when using WCB<br \/>\n\u2013 Workaround for AMD driver: Catch segfaults in wglDeleteContext with SEH. In rare cases the driver derefs a nullptr and dies, taking the emulator with it. From testing, it seems the vram is indeed freed when this happens so its \u00ab\u00a0safe\u00a0\u00bb to continue<br \/>\n\u2013 Disables blit operations if the target will have a size of 0 in any dimension. Fixes blit engine crashing when GPU texture scaling is disabled.<br \/>\n\u2013 Bumped shader cache ver to 1.1. Vertex input declarations (unused since vertex rewrite) and texture sampling coord type (unnormalized vs normalized) no longer affect shader state and do not generate new shaders. Shader cache should generate fewer shaders in affected titles<br \/>\n\u2013 Do not respect FENCx instructions as they seem to be an optimization hint. Respecting FENCx instructions can result in some hilariously broken shaders including entire shaders that are one big NOP<br \/>\n&nbsp;<br \/>\n<strong>OpenGL<\/strong><br \/>\n\u2013 Fixed an bug when initializing framebuffers<br \/>\n\u2013 Implemented a weak vertex cache for OpenGL as well<br \/>\n\u2013 Properly implement VSync control when using OpenGL<br \/>\n\u2013 Fixed a zcull corner case<br \/>\n\u2013 Fixes for backbuffer blits and complete removal of the flip hack when using OpenGL<br \/>\n\u2013 Removal of redundant classes in OpenGL and general cleanup of the texture framework for that backend. There were 2 separate texture classes for example with very different approaches which was awful<br \/>\n\u2013 Improved mesa compatibility for OpenGL<br \/>\n\u2013 Checks that fence is not empty before calling destroy (workaround for a driver bug)<br \/>\n\u2013 Removed the broken strict mode behavior of depth range using GL<br \/>\n\u2013 GLVertexDecompiler: fixes undeclared diff_color and spec_color by using mapped variable name, even if the register is declared as output and nothing is written to it<br \/>\n\u2013 Compatibility workarounds for AMD cards: emulates glMultiDrawArrays which are broken on Windows driver<br \/>\n\u2013 Optimized get_surface_subresource<br \/>\n&nbsp;<br \/>\n<strong>Vulkan<\/strong><br \/>\n\u2013 Fixed vertex buffer binding for Vulkan. The key is to avoid &lsquo;stale&rsquo; descriptors getting to the driver since the referenced buffer views are likely to have been destroyed, resulting in a use-after-free promptly followed by a segfault<br \/>\n\u2013 Improvements to multithreaded vertex processing<br \/>\n\u2013 Volatile vertex cache implemented to help performance in geometry heavy scenes<br \/>\n\u2013 Pre-emptive framebuffer flushing to lower the penalty of a cache miss<br \/>\n\u2013 Partial rewrite of the Vulkan renderer to take advantage of parallel frame processing. The frame queue is now double-buffered improving performance and reducing stutter.<br \/>\n\u2013 Fixed windowed mode -> fullscreen mode transition hangs and crashes<br \/>\n\u2013 Implementation of blit engine in hardware for Vulkan backend<br \/>\n\u2013 Reorganization of frame storage and heap management for Vulkan [WIP, slight performance degradation]<br \/>\n\u2013 Optimize frame storage and minimize hard sync point occurrence. Improves framerates and makes frametimes a lot more consistent.<br \/>\n\u2013 Mark resources with frameIDs to keep drivers that buffer up frames from crashing (Mostly NVIDIA)<br \/>\n\u2013 Implemented VSync mode<br \/>\n\u2013 Fixed window resize race condition when doing flip<br \/>\n\u2013 Improved error handling, recovery and display when running Vulkan (NVIDIA fullscreen &#038; window resize woes)<br \/>\n\u2013 Tightens VSync control to not accept any modes that would allow tearing &#8211; including adaptive VSync. The reason for this is that gcm is timed to control the virtual graphics controller instead of running uncapped and letting the display limit the framerate. This causes slight judder where the overhead of threads getting scheduled around means we might miss a present window. While the adaptive VSync does a good job allowing consistent frametimes, it does allow tearing to prevent judder. This forces true VSync. If you experience frame judder, disable the VSync option<br \/>\n\u2013 Implemented notifications from the GSFrame QWindow to the Vulkan renderer thread. It is important as the renderer should pause until resizing is complete to keep some drivers from crashing when the native window suddenly changes size in the middle of drawing\/presenting<br \/>\n\u2013 Updateed the vulkan dependancies to the newer spec version. Moves KHR_external to core. Also makes it easier to use newer Vulkan SDK on which newer drivers are based upon. Overall a very minor update, hopefully nothing breaks<br \/>\n\u2013 Compatibility workarounds for AMD cards: disabled primitive restart on Vulkan<br \/>\n\u2013 Fixed clipping bug when using Vulkan + GPU texture scaling<br \/>\n\u2013 Flush command queue before attempting to perform texture writeback to guarantee draw order<br \/>\n\u2013 Tag primary command buffers with a flush_only access hint to ensure they are always reopened if submitted outside flush_command_queue such as when dealing with access violations<br \/>\n\u2013 Improved handling of swap_bytes behaviour when using WCB<br \/>\nDirect3D 12\u2013 Added [DO NOT USE] on D3D12 selection<br \/>\n&nbsp;<br \/>\n<strong>Audio<\/strong><br \/>\n\u2013 Implemented PulseAudio backend<br \/>\n\u2013 Added Buffer Count setting<br \/>\n&nbsp;<br \/>\n<strong>Input<\/strong><br \/>\n\u2013 DualShock 4: Fixed bluetooth connectivity bug on controller reconnect<br \/>\n\u2013 DualShock 4: Fixed initial connection issue and hotplug\/dongle calibration detection<br \/>\n\u2013 evdev: Added evdev joystick support<br \/>\n\u2013 evdev: Better joystick axis scaling<br \/>\n\u2013 evdev: Fixes axis reversal<br \/>\n\u2013 evdev: Improved controller detection, this fixes detection of the Steam Controller when used with sc-controller<br \/>\n\u2013 evdev: Added deadzones<br \/>\n\u2013 evdev: Added analog to dpad option<br \/>\n\u2013 XInput: Added config entry for Pad Squircling Factor<br \/>\n\u2013 Added joystick squircling, which makes running in certain games nicer, same implementation as XInput and DualShock 4 backends<br \/>\n\u2013 Respects the controller setting when returning data from cellPadGetData<br \/>\n\u2013 Added a window to setup multiple input types as once<br \/>\n\u2013 All controllers are now handled by a single thread<br \/>\n\u2013 Added ignoring of emulator shortcuts to keyboard_pad_handler<br \/>\n&nbsp;<br \/>\n<strong>Networking<\/strong><br \/>\n\u2013 sys_net: Converts endianess before passing buffers to setsockopt<br \/>\n\u2013 sys_net full rewrite: Implement sys_net syscalls, Clean libnet functions, LLE load libnet.sprx, libhttp.sprx, libssl.sprx, librudp.sprx and libbeisobmf.sprx (makes basic applications like YouTube now work)<br \/>\n\u2013 Implemented SYS_NET_SO_REUSEPORT<br \/>\n&nbsp;<br \/>\n<strong>Trophies<\/strong><br \/>\n\u2013 Fixes rXml limitation<br \/>\n\u2013 Fixes sceNpTrophyCreateContext<br \/>\n\u2013 Implemented a basic trophy notification dialog<br \/>\n\u2013 Allows null argument in sceNpTrophyUnlockTrophy (fixes null dereference on Jak 2)<br \/>\n\u2013 Fixes for trophies to show correct language depending on set system language<br \/>\n\u2013 Implemented Trophy Manager<br \/>\n\u2013 Prevent TROPUSR from crashing on \u00ab\u00a0bad\u00a0\u00bb input<br \/>\n&nbsp;<br \/>\n<strong>GUI<\/strong><br \/>\n\u2013 Enabled modules list multiselection<br \/>\n\u2013 Added drag and drop to gamelist for PUP, PKG, RAP, Disc Game Directories and EBOOTs<br \/>\n\u2013 Adjusted toolbar size<br \/>\n\u2013 Fixed a bug that would crash the emulator on second boot<br \/>\n\u2013 Added user defined notes to saves on Savedata Manager<br \/>\n\u2013 Added the ability to force a log comment while a game is running on Alt+L<br \/>\n\u2013 Fixed scroller and splitter on debugger frame<br \/>\n\u2013 Added hidden by default debug tab in settings<br \/>\n\u2013 Fixed GuiSettings to be in config_path settings<br \/>\n\u2013 Fixed sort and scroll in game list<br \/>\n\u2013 Added smooth icon size slider<br \/>\n\u2013 Fixed settings dialog size to be consistent<br \/>\n\u2013 Added custom config indicator (gear icon)<br \/>\n\u2013 Added disable mouse input setting while the game screen is active (for those who play with UCR)<br \/>\n\u2013 Minor refactoring on pad settings<br \/>\n\u2013 Added git_branch to version, displays branch on GSFrame when not RPCS3\/master and prints to log as well<br \/>\n\u2013 Fixed resize on boot<br \/>\n\u2013 Fixed custom config creation. It created the yml file right when opening the dialog. Now it creates it only on saving<br \/>\n\u2013 Added user custom theme Kuroi (Dark theme)<br \/>\n\u2013 Implemented save manager<br \/>\n\u2013 Hide Utilities by default (it&rsquo;s displayed when Debug Tab is enabled)<br \/>\n\u2013 Forces single line text for out of bounds issue in Game List<br \/>\n\u2013 Fixed a layout bug in the Boot Recent menu<br \/>\n\u2013 Fixed small buttons\/missing icons in the toolbar<br \/>\n\u2013 Fixed gamepad settings layout issue, added refresh button<br \/>\n\u2013 Added scrollbar to about dialog<br \/>\n\u2013 Fixed graphics adapter selection<br \/>\n\u2013 Added more customization options for styleshets<br \/>\n\u2013 Added char count label to osk dialog<br \/>\n\u2013 Fixed a bug in settings dialog layout<br \/>\n\u2013 Disabled viewport settings on custom configs<br \/>\n\u2013 Fixed fullscreen icon<br \/>\n\u2013 Added syntax highlighter for cg_disasm<br \/>\n\u2013 Show tooltips in description box when hovering settings<br \/>\n\u2013 Save manager improvements: Makes size only 60% height of window screen initially, adds ability to delete\/select multiple rows, adds ability to open the directory of the save<br \/>\n\u2013 Debugger improvements: Repositioned the debugger&rsquo;s current instruction to be in the middle, added a breakpoints list so one can see all the current breakpoints<br \/>\n\u2013 GSFrame: Identify minimize\/restore events as separate from regular resize and do not react to them<br \/>\n\u2013 GSFrame: Enable message queue consumption after loading the shaders cache. Also hides the frame during this step. This fixes the &lsquo;start fullscreen&rsquo; bug when running vulkan<br \/>\n\u2013 Updated Tooltips<br \/>\n\u2013 Added Delete LLVM Cache option<br \/>\n&nbsp;<br \/>\n<strong>Windows<\/strong><br \/>\n\u2013 Resets windows sleep timer on pad input (prevents computer from sleeping when playing with controller input only)<br \/>\n\u2013 Registered Win32 error 32 (Sharing Violation)<br \/>\n\u2013 Minor Windows fix on fs::truncate_file and fs::utime<br \/>\n\u2013 Fixed an issue where having paths on games.yml that point to NOT_READY drives such as empty physical\/virtual disc drives returns ERROR_NOT_READY (Win32 error code 21) which was not handled in fs::error, therefore throwing an exception and crashing RPCS3<br \/>\n&nbsp;<br \/>\n<strong>Linux<\/strong><br \/>\n\u2013 Fixed saving\/loading on Linux for some games by changing param.sfo to PARAM.SFO (lol)<br \/>\n\u2013 Finalized AppImage support, started providing proper Linux AppImages on rpcs3.net\/download<br \/>\n\u2013 Fixed an LLVM issue on openSUSE Tumbleweed when using AMD by bundling Qt5Svg.so<br \/>\n\u2013 Fixed segmentation fault in boot recent list<br \/>\n\u2013 Fixed Fedora glew install instructions<br \/>\n\u2013 Make it pass desktop-file-validate in Ubuntu 14.04<br \/>\n\u2013 Added option to build using shared llvm libs for Gentoo users<br \/>\n\u2013 Added warning about needing to install libglvnd for NVIDIA linux users<br \/>\n\u2013 Implemented progress bar in taskbar<br \/>\n\u2013 Fixed some of libpng known incorrect profile spam<br \/>\n\u2013 Implemented set_native_priority (posix)<br \/>\n&nbsp;<br \/>\n<strong>BSD<\/strong><br \/>\n\u2013 Allows building with ALSA on BSD<br \/>\n\u2013 Makes Vulkan optional on Linux \/ makes it possible on FreeBSD. When the USE_Vulkan flag is on, finds the Vulkan loader using pkg-config, and uses it if it&rsquo;s been found. Also libX11 is now linked on any non-Apple Unix. It was necessary on FreeBSD<br \/>\n&nbsp;<br \/>\n<strong>Debug<\/strong><br \/>\n\u2013 Added an option to disable the vertex cache for cases where it causes bugs<br \/>\n\u2013 Added SPU and PPU Debug checkboxes to Debug tab<br \/>\n\u2013 Added a CPU-only mode for debugging texture management operations. While it is quite accurate, it is not perfect and is as expected is slow. Should only be used for debugging<br \/>\n\u2013 Fixes debug counters for texture cache. Also tracks texture memory usage<br \/>\n\u2013 Added buffer names to vulkan heaps to help debug OOM crashes (\u00ab\u00a0Working buffer not enough\u00a0\u00bb crash)<br \/>\n\u2013 Added check_program_status time to draw call setup statistics. It can slow down games significantly<br \/>\n\u2013 Added PPU instruction stat dumper, needs PPU Debug option to activate and PPU Interpreter, dumps after Resume (after Pause)<br \/>\n&nbsp;<br \/>\n<strong>Log<\/strong><br \/>\n\u2013 Small improvements to error formatting on log<br \/>\n\u2013 Added CPU to log<br \/>\n\u2013 Compresses log to RPCS3.log.gz when closing RPCS3<br \/>\n\u2013 Makes it impossible to disable fatal errors logging<br \/>\n\u2013 Config now prints eventual errors for enums<br \/>\n\u2013 Backs up last log to old_logs\/<br \/>\n\u2013 Fixed global variables in Log.cpp<br \/>\n\u2013 Added \u00ab\u00a0Clear\u00a0\u00bb option to TTY log context menu<br \/>\n&nbsp;<br \/>\n<strong>Misc<\/strong><br \/>\n\u2013 Added support for multi-files pkg<br \/>\n\u2013 Implemented log stacking for error report<br \/>\n\u2013 Removed several warnings from the code<br \/>\n\u2013 Allows project to be built on macOS with Clang. Only available Render there is Null<br \/>\n\u2013 Updated ffmpeg submodule<br \/>\n\u2013 Added experimental build warning for non-master builds<br \/>\n\u2013 Fixed rare occurence where there a \/PS3_GAME+something directory lead to weird behavior<br \/>\n\u2013 Fix for unpkg<br \/>\n\u2013 Minor refactoring on GUI code for firmware libraries searching<br \/>\n\u2013 Fixes moving disc games with arbitrary dir name<br \/>\n\u2013 Adds specific how to ask for support instructions on fatal error dialog<br \/>\n\u2013 Travis.yml: Coverity and Coveralls code analysis are removed as they don&rsquo;t work currently, \u00ab\u00a0dist: trusty\u00a0\u00bb is removed as it is now the default Linux, some rework and cleanup added<br \/>\n\u2013 Cleans up old wxWidgets related references<br \/>\n\u2013 Added some visual studio filters for GUI code files<br \/>\n\u2013 Document some of the build options in README and CMakeLists.txt<br \/>\n\u2013 VS build: Copies Qt5WinExtras.dll to bin directory. When building RPCS3 on Visual Studio, there&rsquo;s some DLLs that are copied from the local QT installation to the RPCS3&rsquo;s output directory using a<br \/>\npost-build script. However, one of these DLL was missing, which is required for running the program on debug mode (for release versions, the file is already present on git)<br \/>\n\u2013 Deploy QT DLLs using windeployqt tool: Replace the old mechanism that manually copy the DLLs using either CMake or VS built-in functions. The new approach uses the windeployqt tool provided by the QT project that automatically detect the needed DLLs and perform the necessary copying. This approach should be more robust if there&rsquo;s an upstream change on QT project regarding DLLs usage<br \/>\n\u2013 Fixes an error when compiling with visual studio if you have other executables in the bin folder<br \/>\n\u2013 Added a GitHub issue template, hopefully helps with invalid issue spam<br \/>\n\u2013 Remove unused rsx-debugger submodule<br \/>\n\u2013 Change compiler requirements in cmake script to match with the values listed in the README file<br \/>\n\u2013 CMake: Builds LLVM from the submodule if there&rsquo;s no suitable version<br \/>\n\u2013 Moves optional.hpp as a submodule<br \/>\n\u2013 Fixed travis trying to upload AppImage from private forks. Always fails if not from upstream repo anyway and detects as an error<br \/>\n\u2013 AppVeyor: The project is now built with the Visual Studio solution instead of CMake. This should prevent contributors using Linux (like myself) to introduce a regression on Windows by missing changes in the Visual Studio project files. The AppVeyor artifact is generated with Qt 5.9.1 (previously Qt 5.8) like for Travis. The version 5.9.1 of Qt is not mandatory, there is no problem to keep the minimal requirement to Qt 5.7 except maybe if we have bugs fixed in a newer version<br \/>\n\u2013 Finally fix version indicator. Now displays correct commit number instead of \u00ab\u00a03\u00a0\u00bb<\/em><br \/>\n&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=52914\" 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-52914","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-dLs","jetpack_likes_enabled":false,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/52914","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=52914"}],"version-history":[{"count":2,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/52914\/revisions"}],"predecessor-version":[{"id":52916,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=\/wp\/v2\/posts\/52914\/revisions\/52916"}],"wp:attachment":[{"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=52914"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=52914"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.emu-france.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=52914"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}