0d433baeb5
RVZ: Remove PURGE support
...
PURGE isn't especially useful, while requiring some annoying
special handling in the file format. If you want no compression,
use NONE. If you want fast compression, use Zstandard.
2020-06-17 13:48:15 +02:00
1f7c0b636f
RVZ: Add Zstandard as a compression method
2020-06-17 13:48:12 +02:00
e2ae2b3b0b
Add new file format RVZ based on WIA
2020-06-17 13:47:34 +02:00
f21a254042
WIA: Implement multithreaded compression
2020-06-17 13:47:34 +02:00
9dea8169e0
WIA: Write all headers at the start of the file
...
Gets rid of the need to seek to the end of the file
when opening a file.
The downside of this is that we waste a little space,
since we can't know in advance exactly how much
space the compressed parts of the headers will need.
2020-06-17 13:47:34 +02:00
e5b9e1ba1f
WIA: Reuse groups when writing
...
This is useful for the way Dolphin scrubs Wii discs.
The encrypted data is what gets zeroed out, but this
zeroed out data then gets decrypted before being stored,
and the resulting data does not compress well.
However, each block of decrypted scrubbed data is
identical given the same encryption key, and there's
nothing stopping us from making multiple group entries
point to the same offset in the file, so we only have
to store one copy of this data per partition.
For reference, wit zeroes out the decrypted data,
but Dolphin's WIA writer can't do this because it currently
doesn't know which parts of the disc are scrubbed.
This is also useful for things such as storing Datel discs
full of 0x55 blocks (repesenting unreadable blocks)
without compression enabled.
2020-06-17 13:47:34 +02:00
40e46aee57
WIA: Store all-zero data efficiently
2020-06-17 13:47:34 +02:00
e8b019ac29
WIA: Implement compression
2020-06-17 13:47:30 +02:00
e936c4acd8
WIA: Write hash exceptions
2020-06-17 13:43:54 +02:00
3b8c44fd0e
WIA: Decrypt Wii data when writing
2020-06-17 13:43:54 +02:00
115edea34e
WIA: Add early support for WIA writing
2020-06-17 13:43:54 +02:00
791e363c9a
WIA: Make use of the exception lists
2020-06-17 13:43:54 +02:00
47067f661a
WIA: Properly check for overlapping data
2020-06-17 13:43:53 +02:00
04089f24f9
WIA: Implement re-encryption of Wii partition data
2020-06-17 13:43:53 +02:00
e3d291a529
WIA: Check the internal WIA hashes
2020-06-17 13:43:53 +02:00
827437c036
WIA: Fix the handling of chunk sizes larger than 2 MiB
2020-06-17 13:43:53 +02:00
0b407228b7
WIA: Add documentation
2020-06-17 13:43:53 +02:00
01a77ae8a1
WIA: Implement caching and partial decompression
2020-06-17 13:43:53 +02:00
b59ef81a7e
WIA: Implement bzip2, LZMA, and LZMA2 decompression
2020-06-17 13:43:52 +02:00
1579e061a3
WIA: Correctly handle data with size not divisible by chunk size
2020-06-17 13:43:52 +02:00
3c373c8aa8
WIA: Treat groups with size 0 as containing only zeroes
2020-06-17 13:43:52 +02:00
36991e2dde
WIA: Implement PURGE decompression
2020-06-17 13:43:52 +02:00
3672bd79f3
WIA: Implement ReadWiiDecrypted
2020-06-17 13:43:52 +02:00
2a5fcc9c25
WIA: Add reading raw data
2020-06-17 13:43:51 +02:00
8da5d0c4fe
Add an early version of WIABlobReader
...
It can currently only read the first 0x80 bytes of a disc image,
which is enough for identifying it but not for doing anything else.
2020-06-17 13:43:51 +02:00
b45f2c2ad3
DolphinQt: Disable convert dialog dropdowns when they have one option
2020-06-17 13:23:58 +02:00
ec3ea6c1df
DolphinQt: Allow converting to same format
...
Mainly useful for WIA and RVZ, but also has some use for GCZ.
2020-06-17 12:44:16 +02:00
476c95900d
EXI: When loading a savestate with a mismatching GCI folder memory card, reinizialize it with the header from the savestate to let a game still recognize it as the same card.
2020-06-17 01:44:46 +02:00
8b13e1882a
EXI: Store data for regenerating a GCI folder memory card header in EXI_Channel and pass it down to the memory card device.
2020-06-17 01:44:46 +02:00
e810d492f2
GCMemcard: Split off HeaderData from Header to have a compact block of data for consistent initialization.
2020-06-17 01:44:46 +02:00
cc52558c0e
GCMemcard: Assert struct requirements in header.
2020-06-17 01:30:42 +02:00
07bd200596
GCMemcard: Remove dependency on g_SRAM and force the caller to provide the relevant values instead.
2020-06-17 01:30:37 +02:00
1f505870a9
Merge pull request #8873 from AdmiralCurtiss/gcmemcard-namespace
...
GCMemcard: Move into a Memcard namespace.
2020-06-16 19:55:06 +01:00
de5941d6f8
Merge pull request #8878 from JosJuice/actually-disable-tgc-conversion
...
DolphinQt: Actually disable converting from TGC
2020-06-16 19:39:40 +01:00
914ebdf0dd
GCMemcard: Move from global namespace into a Memcard namespace.
2020-06-16 20:18:39 +02:00
2e1bfe073c
GCMemcard: Split out MemoryCardBase into its own header, which is the base class for the raw and folder memory cards and has little to do with the actual memory card data structures.
2020-06-16 20:18:39 +02:00
c236d89f64
DolphinQt: Actually disable converting from TGC
...
When I made PR 8773, I only covered the case where multiple files
are selected, not the more common case where one file is selected.
Oops
2020-06-16 11:21:44 +02:00
d4418a2b43
Merge pull request #8877 from JosJuice/convert-fail-message
...
DolphinQt: Make conversion error messages actually show up
2020-06-16 09:59:03 +01:00
20a3119d7a
DolphinQt: Make conversion error messages actually show up
...
I don't know why QErrorMessage doesn't work, but ModalMessageBox
works, so let's use ModalMessageBox.
2020-06-16 10:39:40 +02:00
2b25e1d6b9
DolphinQt: Don't show success message when converting missing file
2020-06-16 10:35:00 +02:00
349cdd5136
DolphinQt: Fix crash on right-clicking multiple games
...
GetSelectedGames() constructs a new list each time you call it.
2020-06-16 10:33:18 +02:00
f9f4734237
Merge pull request #8850 from JosJuice/block-size-warning
...
Show an OSD message when running a disc image with a large block size
2020-06-14 15:03:32 +01:00
ad85012172
Merge pull request #8843 from Techjar/fastmem-ui
...
DolphinQt: Add fastmem option to debugger UI
2020-06-14 14:54:32 +01:00
9f5e6edc34
Merge pull request #8809 from Ebola16/ABB
...
Replace some acronyms
2020-06-14 14:30:52 +01:00
2a70d86d55
Replace some acronyms
2020-06-14 08:37:24 -04:00
cb54fc7543
Merge pull request #8857 from JosJuice/qt-bounding-box-width
...
DolphinQt: Use QFontMetrics::boundingRect instead of QFontMetrics::width
2020-06-14 12:10:33 +01:00
0ef9b998ce
Merge pull request #8658 from orbea/glslang
...
Externals: Update glslang.
2020-06-13 18:43:53 +01:00
87330ae524
DolphinQt: Use QFontMetrics::boundingRect instead of QFontMetrics::width
...
See https://kdepepo.wordpress.com/2019/08/05/about-deprecation-of-qfontmetricswidth/
2020-06-08 12:32:36 +02:00
595e1197b6
Rename existing BBA to BBA (TAP) to prepare for new BBA
...
Based on work by tommy1019
2020-06-07 23:17:28 -04:00
d5c00b8909
DSPSymbols: fix off-by-one error
2020-06-08 03:41:45 +01:00