Commit Graph

716 Commits

Author SHA1 Message Date
Lioncash 3196bf5392 NANDContentLoader: Specify constructors as explicit where applicable
Prevents implicit conversion.
2016-09-14 19:44:44 -04:00
Lioncash 89c65be703 NANDContentLoader: Delay vector construction until needed in Get()
No need to construct the vector right off the bat.
2016-09-14 19:41:41 -04:00
Lioncash b1ffa74043 NANDContentLoader: Make CNANDContentData's Get function return by non-const value
const specifiers like this are practically pointless and can inhibit move construction.
2016-09-14 19:15:31 -04:00
EmptyChaos eccec3c6d3 DiscIO: Fix NAND Memory Leak
CNANDContentData is a base class with a non-virtual destructor so
derived classes don't get destroyed causing them to leak resources.
2016-09-14 15:54:05 +10:00
Léo Lam c1184957a5 Run clang-format on missed files
`clang-format`s files that lint missed because of the bug. Fortunately,
not much.
2016-08-11 21:14:39 +02:00
JosJuice 0a15aaaa12 Move DiscIO enums to a new file
At first there weren't many enums in Volume.h, but the number has been
growing, and I'm planning to add one more for regions. To not make
Volume.h too large, and to avoid needing to include Volume.h in code
that doesn't use volume objects, I'm moving the enums to a new file.
I'm also turning them into enum classes while I'm at it.
2016-07-13 17:29:27 +02:00
Pierre Bourdon f4d2626d2b Merge pull request #4005 from EmptyChaos/blockcache-bug
SectorReader: Minor cache bias bug
2016-07-13 12:11:19 +02:00
JosJuice 53e7eed28d DiscScrubber: Fix issue 9356 2016-07-11 11:46:15 +02:00
EmptyChaos 9036b9d8e8 SectorReader: Fix cache line bias
Minor bug where SectorReader::GetEmptyCacheLine was biased towards
the first hit.
2016-07-09 02:27:35 +10:00
JosJuice 31226b8503 DiscScrubber: Replace unused blocks with 0x00 instead of 0xFF 2016-07-07 11:51:58 +02:00
JosJuice 202c9d58cd VolumeGC: Set m_banner_loaded when banner loading fails
If banner loading fails once, it will very likely fail again.
Setting m_banner_loaded to true when banner loading fails
prevents LoadBannerFile from wasting time if it's called again.
Banner loading requires loading the file system, which takes a
noticeable amount of time, so this matters.
2016-06-28 18:05:44 +02:00
JosJuice 1878605d77 Undo some comment formatting changes from b5104a7 2016-06-25 18:07:10 +02:00
Rukai b5104a79f1 GCVolume: supports reading all opening.bnr information
DQT2: Game properties dialog contains info tab giving information about the selected iso.
2016-06-26 00:03:59 +10:00
Pierre Bourdon 3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
Pierre Bourdon c4240692b6 SectorReader: Fix reading the last block of the disc.
Regression from PR #3795.
2016-05-29 18:26:04 +02:00
EmptyChaos 97d570f0c9 DriveReader: Fix View > Show Drives
DriveReader::m_size was never initialized which was indirectly
causing CGameListCtrl to crash Dolphin when it tried to insert a
character at a negative index in a string.

Reading one sector at a time is very inefficient and appears to
be causing timing issues during boot so SectorReader has been
enhanced to support batching.

SectorReader has been given a working cache system.
2016-04-26 21:24:08 +10:00
BhaaL a449ef4e11 properly open/close the file to avoid rapid open/close cycles
ES_OPENCONTENT and ES_CLOSECONTENT now call Open and Close respectively,
as the old code did.
2016-03-20 13:10:51 +01:00
BhaaL 8a6d9e1e0b hide the distinction between WAD and File from ES
instead, leave all the management with the NANDContentLoader.

for file data (directly on the NAND), this opens the file on-demand and
returns the requested chunk when asked for it.
for on-the-fly decrypted WAD data, we just keep the decoded buffer in
memory, like we've done before - except that we don't give away any objects
we don't want to.
2016-03-20 13:10:50 +01:00
BhaaL 1e28d06f26 fix some style inconsistencies that drove me nuts 2016-03-20 13:10:47 +01:00
booto 92278886b9 DiscIO: Use specified Wii region for discs 2016-01-15 03:35:10 +08:00
Pierre Bourdon bff79df363 Merge pull request #3429 from sepalani/debug_vector_fix
Debug Builds: Fixed vector assertion
2016-01-07 00:48:40 +01:00
JosJuice 81466d7fa3 DolphinWX: Stop using XPM images
Using the XPM format for images has become a maintenance problem because
people don't know how to create them. This commit removes all XPM images
and all C files that contain PNG images. DolphinWX now uses the PNGs
in the Resources folder instead, just like DolphinQt and DolphinQt2 do.
2016-01-05 19:11:58 +01:00
Sepalani ba794272f5 Debug Builds: Fixed vector assertion 2016-01-03 13:17:26 +01:00
Mathew Maidment 1b69743ba1 Merge pull request #3362 from lioncash/memory
NANDContentLoader/WiiWAD: Get rid of raw delete and new
2015-12-22 06:39:12 -05:00
Rohit Nirmal aaa89d4f73 Silence -Wshadow and -Wmaybe-uninitialized warnings. 2015-12-21 10:06:07 -06:00
Lioncash cbeb7034eb Volume: Make GetTMD return a vector 2015-12-19 18:00:44 -05:00
Lioncash c78c54c546 NANDContentLoader/WiiWAD: Get rid of raw delete and new 2015-12-19 17:37:09 -05:00
Markus Wick c310b3f0e6 Merge pull request #3309 from JosJuice/reload-banner-without-volume
Don't read from volume when reloading Wii banners
2015-12-15 18:48:49 +01:00
Markus Wick 2990df3f59 Merge pull request #3265 from JosJuice/volumedirectory-simplifications
DiscIO: Small VolumeDirectory simplifications
2015-12-15 18:36:49 +01:00
Markus Wick 25a584626f Merge pull request #3127 from JosJuice/read-return
DiscIO: Improve error handling for reading integers
2015-12-15 18:16:40 +01:00
Markus Wick e4b83d17bf Merge pull request #3270 from JosJuice/more-translations
Mark more strings for translation
2015-12-15 18:13:26 +01:00
JosJuice cbfab2a754 DiscIO: Improve DiscScrubber::ReadFromVolume error handling 2015-12-14 10:01:38 +01:00
JosJuice bd67333da9 DiscIO: Improve CBlobBigEndianReader error handling 2015-12-14 09:56:44 +01:00
JosJuice c01265db34 DiscIO: Unify CBlobBigEndianReader 2015-12-14 09:38:23 +01:00
JosJuice c7e747d775 DiscIO: Improve IVolume::Read32 error handling
Callers can now check whether reads fail, either by checking the return
value or by setting the buffer to a known bad value and seeing if it stays
untouched. I've added error checks to FileSystemGCWii and Boot_BS2Emu,
but not to Boot since it doesn't check any of its other reads either.
2015-12-14 09:38:21 +01:00
Rohit Nirmal 5a7e0aba70 Fix building with PCH disabled. 2015-12-08 16:57:37 -06:00
Lioncash 6295297ab3 DiscIO: Get rid of a few explicit deletes 2015-12-08 04:35:56 -05:00
Lioncash edbbf493f8 DiscIO: Make factory methods return unique_ptrs
Rather than rely on the developer to do the right thing,
just make the default behavior safely deallocate resources.

If shared semantics are ever needed in the future, the
constructor that takes a unique_ptr for shared_ptr can
be used.
2015-12-07 05:57:37 -05:00
JosJuice a0cd753060 Don't read from volume when reloading Wii banners
Should make loading cached Wii games that lack banners slightly faster.
2015-12-03 17:29:59 +01:00
JosJuice f9af58a388 DiscIO: Don't use PlainFileReader in VolumeDirectory
Blobs are not for regular file reading.
2015-11-28 09:18:22 +01:00
Tony Drake 941125699c Added info for Rodea The Sky Soldier 2015-11-21 11:40:03 -05:00
JosJuice 74ea765427 Mark more strings for translation 2015-11-20 11:33:47 +01:00
Markus Wick 584ea8b320 Merge pull request #3206 from JosJuice/limit-filesystem-size-2
Limit size of loaded file systems
2015-11-18 10:43:47 +01:00
JosJuice 3a9e382661 DiscIO: Small VolumeDirectory simplifications 2015-11-17 10:09:54 +01:00
Scott Mansell eddea7f15f Merge pull request #3181 from JosJuice/scrub-directories
Don't reserve space for directories when scrubbing
2015-11-17 10:37:09 +13:00
Tillmann Karras df79398445 DiscIO: drop unused stuff 2015-11-10 17:03:08 +01:00
JosJuice 6dce8b4deb DiscScrubber: Add another nullptr check 2015-11-01 20:30:49 +01:00
JosJuice 6c25c63301 Limit size of loaded file systems
If a disc image is malformed in a specific way, Dolphin
will try to allocate a lot of memory, making it crash.
To avoid that, this change adds an artificial limit for
the size of file systems that Dolphin will try to load.
2015-10-28 21:47:19 +01:00
JosJuice 4d77d12f01 Remove length parameter from DiscScrubber::ReadFromVolume
The function only makes sense when the length is 4. All current callers
use the length 4, so this change doesn't affect any behavior.
2015-10-18 09:24:31 +02:00
JosJuice 618ccf6109 Remove DiscScrubber::GetDOLSize in favor of IFileSystem::GetBootDOLSize
IFileSystem::GetBootDOLSize acts the same. The only difference is that it
reads the DOL offset on its own, but this change makes that optional.
2015-10-17 20:52:26 +02:00
JosJuice 1ec9c6393a Don't reserve space for directories when scrubbing
The offset in a directory FileInfo is an FST offset, not a disc offset.
Treating it as a disc offset doesn't make sense. Directories don't take
up space outside of the FST, so they don't need to be marked as used. The
old behavior may have prevented some scrubbable areas from being scrubbed.
2015-10-17 17:30:23 +02:00
flacs 05e339a605 Merge pull request #3139 from JosJuice/fix-wii-root
Mark which Wii root to use in the NAND path code
2015-10-16 16:49:34 +02:00
comex c22d1d68ab Mark which Wii root to use in the NAND path code.
It's used by both the GUI to do things like install WADs and check up on
the system menu, in which case the global root should be used, and by
/dev/es, in which case the local one should.  The latter isn't
*terribly* useful today, since no contents will ever be installed in
temporary roots (although it's still relevant for data directories), but
converting the whole thing makes sense because then it will Just Work
once the entire NAND is synced.

Because it would have been a bit of work to split it up (but I can if
desired), this commit also contains some basic cleanup of
NANDContentLoader:

(1) The useless interface class INANDContentLoader is removed and the
    methods are changed to just return CNANDContentLoader (the only
    implementation);
(2) CNANDContentManager is changed to use unique_ptr and cleaned up a
    bit.
2015-10-16 09:10:39 +02:00
Tillmann Karras 00aefa5e08 DolphinWX: decompress discs to calculate MD5 hash 2015-10-12 02:35:43 +02:00
Tillmann Karras efe71e686b DiscIO: implement CISOBlob::GetDataSize()
This is a best-effort approach, since the CISO format does not save the
original file size.
2015-10-12 02:33:38 +02:00
Tillmann Karras 1a8e2e16e3 DiscIO: implement WbfsBlob::GetDataSize() 2015-10-12 02:33:04 +02:00
Tillmann Karras a92b4bda95 DiscIO: fix reading the last sector in WBFS
Instead of rounding down, round up.
2015-10-12 02:31:51 +02:00
Tillmann Karras 3a2efc9f4f DiscIO: merge initial WBFS reads 2015-10-12 02:31:51 +02:00
Tillmann Karras f416106eec DiscIO: pre-swap WLBA 2015-10-12 02:31:51 +02:00
Tillmann Karras b1100e4aa0 DiscIO: use std::min() in WBFS 2015-10-12 02:31:51 +02:00
Lioncash 5f181957b3 NANDContentLoader: Replace a string rbegin() call with a back() call 2015-10-07 09:47:26 -04:00
shuffle2 a6f04b0e15 Merge pull request #3091 from Tilka/mbedtls
Update mbed TLS (PolarSSL)
2015-10-03 18:00:58 -07:00
Lioncash 5464e698fc Merge pull request #3102 from rohit-n/build-pch
Fix building with PCH disabled.
2015-10-03 13:30:51 -04:00
flacs d5ec7124e4 Merge pull request #3099 from lioncash/banner
VolumeGC: Get rid of banner pointer casts
2015-09-29 03:49:08 +02:00
flacs aaa48e19fe Merge pull request #3097 from JosJuice/blob-type
Fix blob type detection for game right-click menu
2015-09-29 03:46:29 +02:00
Rohit Nirmal 3b75f45cf6 Fix building with PCH disabled. 2015-09-28 11:51:08 -05:00
Lioncash 7317dd4be2 VolumeGC: Get rid of banner pointer casts
Prefer reading the data into the reified struct instead.
2015-09-28 04:31:43 -04:00
JosJuice be7e0554d2 DiscIO: Add a way to get blob type 2015-09-27 20:54:31 +02:00
Scott Mansell ce493b897d Merge pull request #2271 from revel8n/fixes
Fix for alignment of zero-length files within directory based virtual disk
2015-09-28 05:28:38 +13:00
flacs 34c020352f Merge pull request #3092 from JosJuice/compressed-blobs
Display all compressed formats in blue in GUI
2015-09-27 12:57:19 +02:00
revel8n d4c2ca46a4 - Fix for alignment of 0-length files when volume directory is created from directory on disk
Updating constant value representation

Explicitly state data type in std:max usage
2015-09-26 18:29:29 -05:00
Lioncash cc036ca86c Common: Remove other Common prefixed headers from Common.h 2015-09-26 18:51:58 -04:00
Lioncash 19ac565e0d Common: Move asserts to their own header 2015-09-26 18:51:27 -04:00
JosJuice 6935d28112 Display all compressed formats in blue in GUI
In the past, only GCZ was shown as compressed, not CISO and WBFS.
2015-09-26 15:24:29 +02:00
JosJuice 94ee720a07 Rename IsCompressedBlob to IsGCZBlob for clarity
GCZ is just one of the several compressed formats that Dolphin supports.
2015-09-26 14:46:53 +02:00
Tillmann Karras ac5f56df7e mbedTLS: adapt Dolphin's Visual Studio files 2015-09-25 03:46:41 +02:00
Tillmann Karras 063446c46f mbedTLS: run rename.pl script and fix errors 2015-09-25 03:46:41 +02:00
Lioncash 4b9b82e000 DiscIO: Do swapping in GetTitleID implementations
Gets rid of external swaps at every usage.
2015-09-22 13:50:35 -04:00
Lioncash 113cc119de Merge pull request #2829 from JosJuice/fix-wii-fst-size-2
Fix reading Wii FST size (for real this time)
2015-09-12 00:50:00 -04:00
Lioncash 19459e827f Partially revert "General: Toss out PRI macro usage" 2015-09-11 09:49:00 -04:00
Lioncash 623df9b5ca DiscIO/VS: Remove an empty filter 2015-09-06 13:23:33 -04:00
Scott Mansell be4caa3dc0 Merge pull request #2961 from lioncash/printf
General: Toss out PRI macro usage
2015-09-06 21:02:22 +12:00
Lioncash 4a2e680ed2 VolumeGC: Initialize a variable
Silences an uninitialized variable warning
2015-09-05 23:05:28 -04:00
Lioncash 633be0387d General: Remove unimplemented function prototypes 2015-09-05 22:01:07 -04:00
Lioncash 8fdb013d54 General: Toss out PRI macro usage
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
Shawn Hoffman aa7208e270 [windows] Update projects to vs2015. 2015-09-03 04:23:01 -07:00
Lioncash 222b33f0a3 VolumeCreator: Fix a typo in VolumeKeyForPartition's name 2015-08-31 20:01:51 -04:00
Lioncash 1db1a8aacf VolumeCreator: Use a unique_ptr in CreateVolumeFromFilename 2015-08-31 20:01:44 -04:00
Anthony Serna faedf1bc5c Implemented .elf and .dol support in gamelist
Fixed a TON of structuring, formatting.

removed README.txt files from themes at MaJoR's request

Added platform icon for ELFs/DOLs
2015-08-28 11:10:03 -07:00
Markus Wick 3469694b46 Merge pull request #2676 from Stevoisiak/SpellingCorrections
Minor spelling corrections
2015-08-15 18:36:56 +02:00
JosJuice e0a47c11f5 Fix reading Wii FST size (for real this time)
04fcb72 fixed an issue with reading the Wii FST size, but I found a second
issue when working on PR #2820 - the size must be shifted left by 2.
DiscScrubber and Boot already do this correctly using separate code.
2015-08-10 16:35:23 +02:00
Lioncash 7ee0e75633 Remove unnecessary virtual keywords 2015-07-30 10:33:08 -04:00
skidau a12a4520d8 Merge pull request #2684 from TraceBullet/master
DiscIO: Check if m_Disc is null in ParsePartitionData()
2015-07-14 10:56:12 +10:00
Scott Mansell dc25277a2f Merge branch 'stable' into 'master' 2015-07-13 12:40:38 +12:00
JosJuice 9018b546c7 WbfsBlob: Don't enter an infinite loop when reading beyond end of disc
read_size remained 0 when the "Read beyond end of disc" error occurs,
which made the while (nbytes) loop never end. As a fix, SeekToCluster
now explicitly sets available to 0 when the error occurs, and Read
checks for it.
2015-07-06 15:41:37 +02:00
Trace Bullet 64bd20aba7 DiscIO: Check if m_Disc is null in ParsePartitionData() 2015-07-02 11:45:22 -04:00
Stevoisiak 7248f9b524 Minor spelling corrections 2015-06-29 14:51:21 -04:00
Lioncash daa205990f Use emplace() instead of insert() where applicable for maps. 2015-06-28 19:52:40 -04:00
Markus Wick 156fb82117 Merge pull request #2620 from JosJuice/more-decodestring
Volume: Use DecodeString more
2015-06-18 14:57:10 +02:00
JosJuice a825c7ddfe Volume: Use DecodeString more
DecodeString handles the case where there is no trailing null byte,
so using it lets the code be a bit simpler.
2015-06-18 14:45:26 +02:00