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
Admiral H. Curtiss
e6acbf7cbe
GCMemcard: 'Broken File000' commented out code can't work anymore, but leave a comment about it.
2019-01-06 14:18:00 +01:00
Admiral H. Curtiss
41767daabc
GCMemcard: Remove obsolete commented out code, this is handled via InitActiveDirBat() and related.
2019-01-06 14:12:59 +01:00
Admiral H. Curtiss
111f0b38e0
GCMemcard: Update panic alerts and comments to refer to 1st/2nd dir/BAT blocks.
2019-01-06 14:12:59 +01:00
Admiral H. Curtiss
fa6782f841
GCMemcard: Required declaration before C++17.
2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
36d84c6959
GCMemcard: Slightly nicer definition of UNINITIALIZED_GAMECODE.
2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
ca2c7679df
GCMemcard: Rewrite DEntry_IconFmt() and DEntry_AnimSpeed() to make more sense.
2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
2351a60567
GCMemcard: Let GetDEntry() return std::optional<DEntry>.
2018-12-10 20:24:20 +01:00
Admiral H. Curtiss
860e003b0c
GCMemcard: Remove needless second definition of DENTRY_SIZE.
2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
3d77a43e67
GCMemcard: Use std::array for GCMBlock.m_block.
2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
ceb9cb53c6
GCMemcard: Rename GCMBlock.block to m_block to match naming conventions.
2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
fc70b60d8b
GCMemcard: Access active directory/BAT via methods instead of pointers.
2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
7ff65db3b2
GCMemcard: As far as I can tell, the directory and BAT blocks aren't really main and backup, but just two blocks that store data are written to alternately. So store them as an std::array of 2 blocks instead of an explicit 'backup' block.
2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
0aaf24b9cc
GCMemcard: Rename GCMemcard variables to match our naming conventions.
2018-12-09 22:28:58 +01:00
Admiral H. Curtiss
4d4b5442bd
GCMemcard: Use std::array and BigEndianValue for BlockAlloc.m_map.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
eb6cc3dbab
GCMemcard: Use BigEndianValue for BlockAlloc.m_last_allocated_block.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
d3b61c3ff0
GCMemcard: Use BigEndianValue for BlockAlloc.m_free_blocks.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
88bdab6fe6
GCMemcard: Use BigEndianValue for BlockAlloc.m_update_counter.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
0f776fb091
GCMemcard: Use BigEndianValue for Directory.m_update_counter.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
2d77096d63
GCMemcard: Use std::array for Directory's members.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
f8488f4561
GCMemcard: Use std::array for DEntry.m_unused_2.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
4175fdf28d
GCMemcard: Use std::array for DEntry.m_makercode.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
deadec608e
GCMemcard: Use std::array for DEntry.m_gamecode.
2018-12-09 22:28:57 +01:00
Admiral H. Curtiss
0c638ad858
GCMemcard: Use std::array for DEntry.m_filename.
2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
443729d2c3
GCMemcard: Use BigEndianValue for DEntry.m_comments_address.
2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
8a920dac93
GCMemcard: Use BigEndianValue for DEntry.m_block_count.
2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
675a549628
GCMemcard: Use BigEndianValue for DEntry.m_first_block.
2018-12-09 22:28:56 +01:00
Admiral H. Curtiss
929fd2b41d
GCMemcard: Use BigEndianValue for DEntry.m_animation_speed.
2018-12-09 22:28:56 +01:00