Dolphin Git 5.0-4377 is compiled. This is the trunk of Dolphin Project. Dolphin is the first Gamecube emulator able to run commercial games! Dolphin is a Gamecube, Wii and Triforce (the arcade machine based on the Gamecube) emulator which supports many extra features and abilities not present on the original consoles. It has a partial Wii support and plays most Gamecube games.
Dolphin Git changelog:
* Merge pull request #5626 from shuffle2/fix-leak
windows: fix handle leak when using continuous scan
* windows: fix handle leak when using continuous scan
* Merge pull request #5621 from Orphis/d3d_include
d3d: Add missing include
* d3d: Add missing include
* Merge pull request #5582 from shuffle2/bad-dll-warnings
Hotpatch EZFRD64 to fix heap-related crashes, improve the UCRT patch
* cmake/win32: add CompatPatches
* [windows]: Apply compatibility patches to problematic gamepad vibration drivers.
Move ucrtFreadWorkaround to use the new LdrWatcher.
* Merge pull request #5619 from shuffle2/fix-build
msbuild: put pugixml in Externals solution filter; fix project reference
* msbuild: put pugixml in Externals solution filter; fix project reference.
* Merge pull request #5580 from lioncash/header
Core: Remove unnecessary header inclusions
* Core: Remove unnecessary includes
Also moves a cpp file's related header file to the top of the inclusions if it isn't already there.
* Core: Add WiimoteCommon headers to the VS project
* Merge pull request #5611 from JosJuice/reorganize-file-namespace
Reorganize File namespace
* Add a namespace to OpenFStream
For consistency with the other functions in FileUtil.h.
* Move IOFile to a separate file
Reduces the number of files that need to be recompiled
when making changes to FileUtil.h.
* Merge pull request #5601 from leoetlino/esformats-additions
ESFormats additions and fixes
* IOS/ESFormats: Fix content map writing
On Windows, this would fail because the file handle wasn't closed.
* IOS/ESFormats: Add ParseCertChain
This will be used to avoid duplicating cert chain parsing code.
* IOS/ESFormats: Add CertReader
* IOS/ESFormats: Remove unused TMDReader function
The ES function that used to make use of it was changed to be more
sane, so GetRawHeader() is now unused and useless.
* IOS/ESFormats: Use SignedBlobReader for TMDs and tickets
* IOS/ESFormats: Add SignedBlobReader
Allows common signature parsing code to not be duplicated.
* Merge pull request #5606 from leoetlino/include
NoGUI: Fix a missing include for Xlib
* NoGUI: Fix a missing include for Xlib
* Merge pull request #2820 from JosJuice/filesystem
Filesystem redesign and performance improvements
* Filesystem: Make destructors = default
* Filesystem: Modernize variable names
* Filesystem: Do more validity checking in the constructor
This makes it possible to catch errors earlier so that file systems
simply fail to load instead of behaving oddly. It also makes it possible
to check for errors that weren't checkable before, like the end of a
directory being after the end of the parent directory.
* Filesystem: Add a cache for finding file info by disc offset
FileMonitor calls this every time a read happens, and there's no code that
only calls this a small number of times, so having a cache is worthwhile.
* Filesystem: Replace GetFileList()
Instead of expecting callers to know how the size of directory file infos
relates to which files are in which directories, filesystems now offer a
GetRoot() method, and file infos offer a way to get their children. As
a bonus, m_FileInfoVector no longer has to be created and kept around
in RAM. Only the file info objects that actually are used are created.
* Filesystem: Store pointer to beginning of FST in file infos
Needed for the next commit.
* Filesystem: Better validity checking
Now that the FST in read in the constructor, m_Valid
can be set to false when there are errors in the FST.
* Filesystem: Initialize everything in constructor
Not initializing until the filesystem is used is good when
a filesystem is constructed and then never used, but nobody does that.
This simplifies the code a little and lets all methods be const.
* Filesystem: Read the entire FST in one go
Instead of using lots of small scattered reads to read the FST,
only one big read is used, which is more efficient.
This also means that the FST only allocates memory once and stores all
strings close to each other - good for the CPU cache. The file info
objects use pointers to this FST memory of containing data themselves.
Keeping around the big m_FileInfoVector containing objects with only
pointers is a bit unnecessary, but that will be fixed soon.
* Filesystem: Rewrite finding file info by path for performance
Instead of calling GetPathFromFSTOffset for every file info, FindFileInfo
now only looks at names in directories that are included in the path.
For the common case of searching for "opening.bnr", this means that
only root-level files and directories have to be searched through.
* Filesystem: Use file info in arguments instead of path
Some callers already have the file info, making the relatively slow
FindFileInfo calls unnecessary. Callers that didn't have the file info
will now need to call FindFileInfo on their own.
* Filesystem: Make FindFileInfo public
* Filesystem: Replace file info's full path with name
Some callers (i.e. ISOProperties) don't want the full path, so giving them
it is unnecessary. Those that do want it can use GetPathFromFSTOffset.
Not storing full paths everywhere also saves a small bit of RAM and is
necessary for a later commit. The code isn't especially pretty right now
(callers need to use FST offsets...) but it'll become better later.
* Filesystem: Replace FileInfo struct with interface
GC/Wii filesystem internals shouldn't be exposed to other classes.
This change isn't especially useful by itself, but it opens up the
way for some neat stuff in the following commits.
* DiscScrubber: Use FileInfo::IsDirectory instead of bit magic
Download: Dolphin Git 5.0-4377 x64
Download: Dolphin Git 5.0-4377 Android
Source: HereDolphin Git 5.0-2877
0 Comments
Post a Comment