Q2 2021 Progress Report
Q2 2021 Progress Report
Core Improvements
DEV9
DEV9: Do not apply byteswapping to TX/RX FIFO writes/reads
- Remove the byte swapping done to TX/RX FIFO writes/reads performed via registers.
- Fixes Twisted Metal: Black Online Public Beta v. 1.0 unable to initialize network adapter.
Add ATA Idle Immediate (E1) stub
- Fixes HDD support for Street Fighter Alpha Anthology.
Consistently prefix all console output with DEV9
Update ATA code for wchar GHC
PCAP, check size of read packet
- In PCAP, check size of read packet. If the size exceeds the buffer we are using, drop the packet.
Always use binary mode for HDD file
- Opening the file in binary mode is the intended behaviour (and was done in the most common situation),
Fix potential out of bounds access when manual DNS1 & automatic DNS2 are used together
- If DNS1 was manually specified, but DNS2 set to be automatically assigned, an off by one error could result in an out of bounds access to an array of adapter DNS addresses.
Increase min HDD size to 40GiB
- Most games expect a HDD of 40GiB in size, and may fail to install as a result (and display a confusing error message).
Internal DHCP support
- Adds an internal DHCP similar to what CLR\DEV9 offers for PCAP & TAP.
Correctly populate DNS2 field with DNS2 IP
- Correctly populate DNS2 field with DNS2 IP in the DHCP section of the network ui.
Sleep instead of yield in RxThread
- Yield might not leave the thread asleep long enough to prevent it from causing excessive CPU load.
- This also brings PCSX2 inline with CLR_DEV9 (which also sleeps for 1ms).
Memory Cards
Folder memcards: Add an index file to track order of files
Adds an index file for folder memory cards in order to track timestamps and order of files in the FAT partition properly. This normally shouldn't matter, but there are at least a few games (ie. GTA games) which rely on the order of files on the memory card. Previously, folder memcards would not care about the order and populate the partition in whatever order the host filesystem provided the files (so, in the case of NTFS partitions, alphabetically). In reality, FAT partitions don't specify the order of files, which means in practice they are sorted to the order of creation.
- Fixes saving in GTA games with folder memory cards.
microVU
Fix mistake when setting Status Flag bits for Signed/Zero
Change default of latency slider
GIF
Remove MTVU spam that isn't required
Solves stuttering in MTVU mode in some games, and gets rid of some annoying asserts which mean nothing.
SPU2
Change default of latency slider
Fix hi def audio streaming
Remove cycleptr, grab current cycles directly
- This just changes the SPU2 to get the current IOP cycle directly instead of through a pointer. The non-pointer path seems to have been given up on anyway and there seems to be little reason for hiding it behind a pointer.
- This removes the path where SPU2 runs off the provided cycle argument to SPU2Async, but that was unused anyway.
Make SPU use theDMA registers from iopHw.
The SPU was managing its own DMA Addresses, this makes it use the iopHw functionality for this instead.
PAD
Just enablepressure on CMD 0x4F
Fixes Warriors of Might and Magic GamePad not functioning properly.
Fix gamepad choice not affecting rumble test on Linux
This change causes the currently selected GamePad to rumble instead of the first one.
Eyetoy
Motion buttonsupport.
Debuggers
Bios threadview support.
Misc core
Core / VU: Disable MTVU when VU1 Interpreter is selected.
Remove FPUCompare Hack
The hack is no longer needed as full Clamping mode can be used instead.
DifferentiateImpossible block clearing message from IOP & EE
Prefix the "Impossible block clearing failure" with "[IOP]" or "[EE]" depending on the recompiler.
Fix Emulated PSXGPU Version.
Previously it was thought that the PS2 would emulate the v2 GPU, but hardware tests show that it emulates the V0 GPU.
Make DMA's instant during the BIOS
This hackfixes the BIOS to avoid a Data Cache bug caused a DMA buffer being overwritten during a transfer without waiting, which messes up the fonts in the BIOS. Fixing this correctly would require implementing the Data Cache, which is something which would make the emulator basically unusable, so this is a reasonable solution, it is only enabled during the BIOS screen.
- Fixes certain bios revisions rendering text incorrectly.
MoverecConstBuf memory near recompiler memory
- Fixes an issue where recConstBuf was too far away from the main recompiler to LEA in 64-bit builds.
Fix disc drivepath issues on Windows.
- Fixes #3910 - CDVD Regression: Booting a physical disc inserted after opening PCSX2 doesn't work. (Regression only affects Windows).
- Fixes an issue where the drive choice is cleared if there is no disc in the selected drive when PCSX2 is first opened (Should only affect Windows, but non-Windows only code is touched too).
GSdx Improvements
Misc GSdx
Removepartial and full crc hack levels on release builds
- Normal users shouldn't really need to choose partial or full since automatic already does that.
Some minorcleanups.
TAS (Tool Assisted Speedrun) Utility Improvements
Resolve crash when closing emulator involving GUI elements
Add close box to New Input Recording
Allow configuration of the frame advance amount
- Adds a GUI configurable setting to control how many frames the frame-advance feature should advance.
Add warning when creating a save-state recording
- Adds a brief warning explaining why you may want to avoid save-state recordings, and what would have to be done if a bad state is achieved.
IPC (Interprocess Communication) Improvements
Remove possiblememory corruption due to strcat on provided pointer
GameDB Improvements
Add patches for Elemental Gerad and K-1 Grand Prix 2006
Adds fixesfor Energy Airforce - Aim Strike , K-1 World Grand Prix 2006
add NearestEErounding to SSX and SSX tricky
Add Kickstartfor Rayman Raving Rabbids.
Adds VUclamping mode extra to Enthusia Professional Racing
Remove nolonger needed 'OPHFLagHack' for Naruto - Uzumaki Chronicles 2
Misc Improvements
Grayout InstantVU1 when MTVU is enabled.
Revise consolewith newline on compile + title
Swap buttonsBrowse... and Ask when booting and default to unchecked state
change window todebug in the menu and move blockdump to the debug menu
update the 2smaller app icons.
change 'Consoleto Stdio' to 'Program Log to Stdio' in UI
Rename PSXreferences to PS1 distinguish between PS1 and DVR
RemoveSSE2/SSE3 support
Moving forward with our goal to clean up and modernize the code we are removing SSE2/3 support.
Save ELF lastpath when auto-running an elf
Enable GSdebugger on CI artifacts
Adds an CI environment variable to enable GS debugger on CI artifacts. This can also be enabled locally to enable the GS debugger.
Validate GameDBchanges in GitHub Actions.
Currently, the emulator will fully validate the GameDB, which is how we've been catching these recent mistakes. But this adds a CI check to validate the file in a very similar manner at build time.
CI: Add an explicit flag to retain debugging artifacts (.pdb, .exp, .lib, etc) in Windows builds.
Conclusion
And that's all from us, see you next time in our 2021 Q3 Report!
Metadata
Q2 2021: (dev1164 to dev1299) (2020-04-01 - 2020-06-30)