Admiral H. Curtiss
dc2d234284
GCMemcardUtils: Fix typo in comment.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
e47eb16641
GCMemcardManager: Detect attempt to import multiple save files with the same internal name.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
74b56a8c7f
GCMemcardManager: Add filename column.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
9acbe1aced
GCMemcardManager: Make columns sortable.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
42f4ee629b
GCMemcardManager: Make columns resizable by the user.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
7cf991bd8a
GCMemcardManager: Small cleanups.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
e00e6e1a8c
GCMemcardManager: Replace remaining panic alert with ModalMessageBox.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
daa76183ed
GCMemcard: Let ImportFile() take a Savefile instead of a direntry and a vector of blocks.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
c95f3cbb61
GCMemcard: Remove obsolete methods.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
645cb2f3d1
GCMemcardDirectory: Rewrite migration logic without ExportGci().
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
e8b99d3afd
GCMemcardManager: Rewrite file deleting logic to provide a better user experience.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
6e96f95432
GCMemcardManager: Rewrite file copying logic to provide a better user experience.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
08dccb8727
GCMemcardManager: Rewrite file importing logic to provide a better user experience.
2021-01-28 22:01:33 +01:00
Admiral H. Curtiss
3286d2df3d
Common/VariantUtil: Add 'overloaded' helper struct for use with std::variant.
2021-01-28 22:01:32 +01:00
Admiral H. Curtiss
87ae7ccd75
GCMemcardManager: Rewrite file exporting logic to provide a better user experience.
2021-01-28 22:01:32 +01:00
Admiral H. Curtiss
7bb7aa16c2
GCMemcardManager: Relayout file table for a more compact design.
2021-01-28 22:01:32 +01:00
Admiral H. Curtiss
ec4fc7171f
GCMemcardUtils: Implement GenerateFilename() as a cleaner variant of GCMemcard::GCI_FileName().
2021-01-28 22:01:30 +01:00
Admiral H. Curtiss
3e7f537a9d
GCMemcard: Implement ExportFile() to get a file on a card with a single method call.
2021-01-28 22:00:33 +01:00
Admiral H. Curtiss
9b14cc8ea2
GCMemcard: Implement utility functions to read saves from and write saves to files, without involving a memory card.
2021-01-28 22:00:28 +01:00
Admiral H. Curtiss
2932b5f8cd
Qt: Give better error messages when Wii save importing fails.
2021-01-02 17:46:12 +01:00
Admiral H. Curtiss
d9c686db30
WiiSave: Delete existing save, if any, before importing one.
2021-01-02 17:46:12 +01:00
Admiral H. Curtiss
700d53e00f
WiiSave: In Import(), make sure the TMD exists or can be reinstalled before allowing save to be imported.
2021-01-02 17:46:11 +01:00
Admiral H. Curtiss
46e4c17db3
WiiUtils: Add utility functions to handle prep-work for importing 'SD-card export' style Wii saves.
2021-01-02 17:46:11 +01:00
Admiral H. Curtiss
7abe1085e3
IOS/ES: Pass relevant caller title information to ImportTmd() and ExportTitleInit().
2020-12-31 17:13:46 +01:00
Admiral H. Curtiss
5bbd5fce2f
Common: Write PNGs in two steps to allow Unicode target paths.
2020-12-20 03:30:17 +01:00
Admiral H. Curtiss
f5170dc69b
Common/LinearDiskCache: Handle truncated shadercache files.
2020-12-19 19:09:33 +01:00
Admiral H. Curtiss
e91a347a07
Common/LinearDiskCache: Use unique_ptr instead of new/delete.
2020-12-19 19:09:33 +01:00
Admiral H. Curtiss
668b8d60c8
Core/AddressSpace: Return null accessors when no game is running to prevent out-of-bounds memory accesses.
2020-12-13 06:21:07 +01:00
Admiral H. Curtiss
3d8736f9d7
Update bundled libpng to version 1.6.37
2020-12-13 02:50:12 +01:00
Admiral H. Curtiss
324de7fa02
VideoCommon: Use Common::SavePNG() to write textures.
2020-11-26 23:55:05 +01:00
Admiral H. Curtiss
33c1a5b941
InputCommon: Use Common::SavePNG() to write images.
2020-11-26 23:55:05 +01:00
Admiral H. Curtiss
2de3b12e9d
Common: Add SavePNG() function that writes PNGs using the simplified libpng API.
2020-11-26 23:55:05 +01:00
Admiral H. Curtiss
11e226a91a
Qt/IOWindow: Remove Apply button.
2020-11-26 00:47:37 +01:00
Admiral H. Curtiss
334100509b
Qt/IOWindow: Show the current value of the expression.
2020-11-26 00:46:51 +01:00
Admiral H. Curtiss
ddfb8fa404
Qt/IOWindow: Apply expressions immediately so we can query the current value of the expression.
2020-11-26 00:45:31 +01:00
Admiral H. Curtiss
45d4746a5d
IOFile: Replace all fprintf string writing with calls to WriteString.
2020-11-25 22:11:21 +01:00
Admiral H. Curtiss
9c590e215f
IOFile: Add WriteString() method to replace fprintf string writing.
2020-11-25 15:41:25 +01:00
Admiral H. Curtiss
83c235b7cb
WiiUtils: Create Wii Shop log files when installing a WAD.
...
Fixes https://bugs.dolphin-emu.org/issues/12269
2020-11-19 03:26:27 +01:00
Admiral H. Curtiss
cae741584b
InputCommon: Return error, if any, from ControlReference::SetExpression().
2020-11-08 01:04:33 +01:00
Admiral H. Curtiss
b93adeaad7
VertexShaderGen: Fix unescaped { in D3D shader.
2020-10-19 20:05:07 +02:00
Admiral H. Curtiss
c74ea6696e
Settings: Fix incorrect config key for enabled analytics.
2020-09-09 20:19:30 +02:00
Admiral H. Curtiss
4b91c071c1
Qt/GCMemcardCreateNewDialog: Use zero values for formatting instead of accessing g_SRAM.
2020-08-24 19:33:28 +02:00
Admiral H. Curtiss
49e6478817
GameSettings: Add patches for Pokémon Colosseum and Pokémon XD to circumvent the check that the save being overwritten matches the last known save.
2020-08-24 19:32:57 +02:00
Admiral H. Curtiss
b175c203e4
GCMemcardDirectory: Avoid undefined behavior in ClearBlock().
2020-08-24 19:32:10 +02:00
Admiral H. Curtiss
131eb9107b
GCMemcard: Avoid undefined behavior in the static Format().
2020-08-24 19:32:10 +02:00
Admiral H. Curtiss
87135db492
GCMemcardDirectory: Clarify data writing in FlushToFile().
2020-08-24 19:32:10 +02:00
Admiral H. Curtiss
306a5e6990
Jit64: Keep track of free code regions and reuse space when possible.
2020-08-24 19:31:32 +02:00
Admiral H. Curtiss
fdab9783c7
Externals: Add rangeset.
2020-08-24 19:31:32 +02:00
Admiral H. Curtiss
5b52b3e9cb
x64Emitter: Check end of allocated space when emitting code.
2020-08-24 19:31:32 +02:00
Admiral H. Curtiss
f859da112e
Update Windows build to use Qt 5.15.0.
2020-08-22 20:08:38 +02:00
Admiral H. Curtiss
cdf2a29b5e
Qt/IOWindow: Add a handful of math functions to the function dropdown.
2020-08-02 22:09:09 +02:00
Admiral H. Curtiss
2281cde28b
InputCommon: Add a handful of math functions to the expression parser.
2020-08-02 22:09:09 +02:00
Admiral H. Curtiss
556e93f357
GCMemcard: Change behavior of TitlePresent() to more closely resemble how saves are actually identified.
...
This modifies GCMemcard::TitlePresent() to match my findings of how the GC BIOS and various games behave when you alter the fields in the directory entry.
It looks like for a save to be recognized by a game, the following have to be true:
- Game code and maker code must exactly match what the game expects.
- Filename is only checked up to the first null byte. All bytes afterwards can be whatever.
The BIOS itself does a full compare of the filename when checking for whether it should allow copying a file from one card to another, but behaves oddly in some cases when there's non-null bytes after the first null. See the big comment in `HasSameIdentity()` for details.
2020-07-15 19:17:22 +02:00
Admiral H. Curtiss
27e49c00b3
FreeLookCamera: Fix savestate branch inconsistency.
...
Fixes https://bugs.dolphin-emu.org/issues/12168
2020-06-28 02:31:37 +02:00
Admiral H. Curtiss
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
Admiral H. Curtiss
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
Admiral H. Curtiss
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
Admiral H. Curtiss
cc52558c0e
GCMemcard: Assert struct requirements in header.
2020-06-17 01:30:42 +02:00
Admiral H. Curtiss
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
Admiral H. Curtiss
914ebdf0dd
GCMemcard: Move from global namespace into a Memcard namespace.
2020-06-16 20:18:39 +02:00
Admiral H. Curtiss
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
Admiral H. Curtiss
e921cbe57c
GCMemcardManager: Add GUI to create new memory card.
2020-04-28 23:59:15 +02:00
Admiral H. Curtiss
330c80055d
Qt/Debugger: Refresh windows on savestate load.
2020-04-15 00:12:35 +02:00
Admiral H. Curtiss
303b18ddaf
Qt/CodeWidget: Typo in settings key.
2020-03-20 20:51:26 +01:00
Admiral H. Curtiss
e8dfb8f78d
Qt/CodeViewWidget: Make columns resizable by the user and set sensible defaults.
2020-03-18 22:27:53 +01:00
Admiral H. Curtiss
9c98b659f1
Qt/CodeViewWidget: Indent branch arrows based on free space rather than reserving a full column for each.
2020-03-15 16:14:35 +01:00
Admiral H. Curtiss
18127e2554
Qt/CodeViewWidget: Implement branch arrows.
2020-03-07 01:52:53 +01:00
Admiral H. Curtiss
c70e004f53
Qt/CodeViewWidget: Use named constants for column IDs.
2020-02-23 18:49:27 +01:00
Admiral H. Curtiss
3b67d0d90a
GCMemcard: Read icons according to logical data offsets instead of physical data offsets. Also gets rid of some undefined behavior.
2019-11-17 01:42:26 +01:00
Admiral H. Curtiss
110d6c1da3
GCMemcard: Read banners according to logical data offsets instead of physical data offsets. Also gets rid of some undefined behavior.
2019-11-17 01:42:26 +01:00
Admiral H. Curtiss
2f119bd206
GCMemcard: Move Icon and Banner constants to the GCMemcard header.
2019-11-17 01:42:26 +01:00
Admiral H. Curtiss
58f21830bd
GCMemcard: Read file comments according to logical data offsets instead of physical data offsets.
2019-11-17 01:42:26 +01:00
Admiral H. Curtiss
770605bc80
GCMemcard: Add method to read an arbitrary block of bytes from a save file.
2019-11-17 01:42:26 +01:00
Admiral H. Curtiss
1c1c19e996
Qt/GCMemcardManager: Fix incorrect placeholder frame timing.
2019-10-21 22:47:17 +02:00
Admiral H. Curtiss
bbeb25de48
Qt/Debugger/CodeWidget: Allow pressing 'enter' in address search box.
2019-10-14 21:47:27 +02:00
Admiral H. Curtiss
ff90a5855d
Qt/GCMemcardManager: Fix animation frame order and speed.
2019-09-23 01:55:46 +02:00
Admiral H. Curtiss
8f573cf5f2
Qt/GCMemcardManager: Fix animation frame decoding.
2019-09-22 21:55:06 +02:00
Admiral H. Curtiss
5614594f5e
Qt/GCMemcardManager: Add an 'All Files' option to the filetype selection.
2019-08-22 20:18:21 +02:00
Admiral H. Curtiss
7b9d43a834
Qt/GCMemcardManager and Qt/GameCubePane: Give detailed error messages for invalid memory cards.
2019-08-15 18:21:48 +02:00
Admiral H. Curtiss
ba8ffd9391
GCMemcard: Check if the Directory's number-of-blocks claim for files matches the BAT, and report an error if it doesn't.
2019-08-15 18:21:48 +02:00
Admiral H. Curtiss
7d4cabea07
GCMemcard: The update counters are interpreted as signed values for the newer-than comparison.
2019-08-15 18:21:47 +02:00
Admiral H. Curtiss
8fc2f0ff2d
GCMemcard: Rename MemCardXMb constants to MBIT_SIZE_MEMORY_CARD_X for consistency with other constants.
2019-08-15 18:21:45 +02:00
Admiral H. Curtiss
b54a49eaaf
GCMemcard: Rework construction logic to better match our knowledge of the format, while providing better error reporting facilities.
2019-08-15 18:18:56 +02:00
Admiral H. Curtiss
15abb1c92d
GCMemcardDirectory: Improve logic for which files are loaded into the virtual memory card.
...
- Files for the current game are now guaranteed to be loaded, space and validity permitting.
- Avoid showing PanicAlerts for every problem encountered, most of them aren't really important enough and will probably just annoy the user.
- And for the only error the user will definitely care about, when the save of the game they're trying to play fails to load, show an imgui message instead.
2019-05-25 21:51:36 +02:00
Admiral H. Curtiss
5af05f6714
GCMemcard/GCIFile: Implement LoadHeader().
2019-05-25 21:49:09 +02:00
Admiral H. Curtiss
884af05589
GCMemcardDirectory: Move GCIFile class to its own file.
2019-05-25 21:49:09 +02:00
Admiral H. Curtiss
e390fd0f4e
GCMemcard: Remove unused ability of ImportGci() to write a GCI file to disk.
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
018572018e
GCMemcard: Dismantle the global return value enum into a few function specific enum classes.
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
d09303683c
GCMemcard: Convert a few enums into constexprs.
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
cbc5acb8cd
GCMemcard: Get rid of stray signed length in ImportGciInternal().
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
2d38364410
GCMemcard: Remove memsets that don't do anything in GCMemcard::Format().
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
88a0773309
GCMemcard: Rewrite checksum calculation without undefined behavior.
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
fcd75841ca
GCMemcard: Rewrite Header::CalculateSerial() without undefined behavior.
2019-05-25 17:58:05 +02:00
Admiral H. Curtiss
6e04e4dd6a
GCMemcard: DEntry: Move code out of header.
2019-05-18 15:44:38 +02:00
Admiral H. Curtiss
17da22a84f
GCMemcard: GCMBlock: Move code out of header.
2019-05-18 15:44:38 +02:00
Admiral H. Curtiss
e4094d9d2d
GCMemcard: BlockAlloc: Move code out of header, fix naming conventions.
2019-05-18 15:44:38 +02:00
Admiral H. Curtiss
4b46f71b3c
GCMemcard: Header: Move code out of header, fix naming conventions.
2019-05-18 15:44:38 +02:00
Admiral H. Curtiss
0052b313d6
GCMemcard: Directory: Move code out of header, add some boundary checks, fix naming conventions.
2019-05-18 15:44:38 +02:00
Admiral H. Curtiss
fdd19c1b54
GCMemcard: Fix out of bounds access in F-Zero GX checksum calculation.
2019-02-01 17:50:19 +01:00
Admiral H. Curtiss
04bcc64e82
GCMemcard: Update formatting of memcard field comments in header.
2019-01-06 14:40:38 +01:00