What's new in this version:
- The new debugger features a live disassembly view and allows developers to debug games way easier than before while being very useful feature in assisting the debugging of games which aren't working properly. Its main purpose is aiding in game hacking, translation patches for example list of Keyboard shortcuts for the debugger functions can be found at docs/debugger.txt
Folder memory cards:
- The new Folder memory card feature allows users to easily share single game saves instead of the whole memory cards by simply sending the folder of the specific game. This method also allows easier backup of the save files and allows deletion of game saves without even going into the PS2 bios or the game. You even convert your older memory cards to a folder using the built-in convert feature!
- Another neat advantage is that it provides unlimited storage capacity for save files as games will only see their own saves and the rest of the perceived 8MB memory card as free space. This allows you to create as many saves as would fit onto a whole empty memory card in a single game, without concerns about leaving enough space for other games or ever running into the problem where you start a new game and only later realize you don't have enough free space on the memory card to save, and without the incompatibility issues of emulating bigger third party memory cards.
- You can now manipulate the EE Cyclerate to overclock and underclock the Emotion Engine's R5900 Core CPU clock speed, The negative values on the slider allow you to reduce the clock speed and conversely the positive values effectively increase the clockspeed.
Recompiler Improvements and Core Refactors:
- GIF: Better Handling for Finish Interrupt request signal
- MicroVU: General Improvements
- SIF: Limit/Mask transfer size to 1mb-16bytes
- VIF: Better handling of IRQ and MFIFO Timing improvements
- EE Interpreter: Improved TLB miss exception handling
Support for loading Gzip and CSO compressed ISO's:
- PCSX2 can now directly load compresed ISO images, so you can save your precious HDD space!
Programmable blending to reproduce GS blending unit output:
- The source of the issues on GPU blending unit is due to the fact that the raster operations pipeline (ROP) differ from the GS and the GPU which means that the GPU ROP's don't support the equations which are supported by the GS ROP's and hence it leads to wrong blending which causes situations like horizontal black lines or missing effects on some games.
- Hardware implementations are usually limited to only a subset of all possible equations. A software implementation based on a CPU (such as a shader) would be able to do any operation at the cost of performance.
- The new option (Blending Unit Accuracy), which is an OpenGL renderer exclusive, moves the computing of the ROP to the shader. This way it is more accurate but considerably slower. You can try different levels of the option "Blending Unit Accuracy" to check out the impact on the accuracy and performance.
Improved CRTC output size handling:
- There were few rare cases on games running at NTSC video mode where the detected frame buffer height was too large and eventually caused the whole screen to have a weird format with unexpected bottom black bars on the screen. A few games which suffered similar issues are Skyrunner, Devil may cry 3, Tribes: Aerial Assault. This eventually got fixed by proper saturation limit for height in case of NTSC video mode.
Software renderer improvements:
- Silent Hill outputs a nan in Q to emulate the flashlight - an unsupported NaN (not a number) on the projection value (Q). Gregory used an isnan test to find such instances and emulate the flash light effect. Gabest later decreased the speed impact by using inlined ASM. Fixes Flash light effects on Silent Hill 3.
- Better texture size management in software mode, fixes Horsez and Stolen memory issue and also lowers memory usage in general.
- Better handling of textures addressing outside the limits by extending the cached texture size to the upper limits of the region clamp values: Fixes Lupin the 3rd
Accurate destination alpha testing:
- Better behavior to replicate one of the GS functions where the Graphics Synthesizer can discard a pixel based on the destination output. In order to emulate this function properly you need in-order RW texture. Unfortunately standard GPU only has either an in-order RO texture or an out-of-order RW texture, to circumvent around this limitation accurate date implements a two pass algorithm to implement the effect. The 1st pass searches the valid primitive ID and the 2nd pass will do the draw based on the previous pass.
Improved read of depth / color:
- A standard GPU has separate textures for the color and the depth information. The GS doesn't enforce such separation between color/depth information. So it is allowed to read depth as color or write color into depth. You could even write depth in the color render target. It is used for effects such as "depth of field". The new option "Hardware depth", which is an OpenGL renderer exclusive, allows to convert depth/color into color/depth respectively. Now you can enjoy accurate reproduction of such effects. However these conversions require additional resources from your GPU which might gradually decrease performance in cost of accuracy.
Per channel volume adjustment:
- A.K.A Room Correction. This feature is present in the control panel of some audio chips, but often enough, the settings that work well for the system in general, don't match the settings that you prefer for emulated games, due to the intrinsic differences of the emulated machine.
- It does exactly what it sounds like: lets you adjust each output channel independently, to compensate for things such as distance of the speakers to the chair, or to emphasize the vocals (center channel) or the surround sound (side/back channels) when the game's balance is not fully to your liking.
- You'll find the values hidden in the SPU2-X.INI file, under the MIXING section (VolumeAdjust series of keys). The values are in decibels, which means writing 1 in one of the volumes will make the amplitude 10x larger, 2 will blow it up to 100x, and -1 will make it 1/10th of the original. Smaller values in the range of -1 to 1 are recommended for testing, as it's easy to cause unwanted clipping in the output.
Improvements to tempo adjustments:
- Previously latency values higher than 200ms will make the stretcher adjustments overshoot the target
- equilibrium back and forth, in effect never stabilizing. This bug was fixed by lowering the tempo adjustments to avoid potential overshoots on bigger buffers.
- The latency slider will now allow a minimum value of 15ms. Providing choices of choosing from values between 15 to 29ms on the slider.
Configurable template on GSFrame titlebar:
- There was some discussion among the users about the elements which should be displayed on the title bar of the rendering window, some of them disagreed with the placement of the elements and suggested to replace them in different order and have certain elements prioritized. While our users opinions are respected, all of them had very different ideas and it was impossible to satisfy everyone. Hence a consensus was never reached.
- So Avih decided to create a general template system to allow customization of the elements on the title bar. The following template is located in the inis_1.4.0/PCSX2_ui.ini file though lacks a user interface for easier customization.
Revamped Core and GSDX plugin dialogs:
- The Core and GSDX dialogs have undergone quite a deal of changes like converting the three-state checkboxes to a combobox, inclusion of tooltips on GSDX dialogs and further simplification / categorization which eventually lead to the Shader configuration dialog which includes all the Shader based options. (Shade Boost , FXAA , TV Shader and External shader) on the core side, there was a recent WX update from 2.8 to 3.0 which eventually caused a few issues but all of them got fixed eventually by our WX Expert Turtleli and there has also been support for DPI scaling added for all the dialogs. The Emulation settings dialog has also been changed slightly to be more consistent with the Linux GUI.