pcsx2/pcsx2
Admiral H. Curtiss 1d46800888 MemoryCard: Full initial implementation of the FolderMemoryCard.
FileMemoryCard: Log reads and writes so I know what kind of commands I have to deal with.

FolderMemoryCard: Create basic class/method outline based on FileMemoryCard.

FolderMemoryCard: Add a FolderMemoryCardAggregator so I don't have to write every method in a way that has to handle more than one memory ca

Also shuffle around the location of code because C++ cares about stuff
needing to be defined before they're usable.

FolderMemoryCard: Implement Open().

FolderMemoryCard: Implement GetSizeInfo().

FolderMemoryCard: Implement some basic structure of Read()

FolderMemoryCard: Implement parts of Read() and Save().

Shouldn't it be Write() or Load()? Anyway, this doesn't work yet, but it
gets part of the formatting procedure done which is at least something!

FolderMemoryCard: Add method to calculate ECC.

FolderMemoryCard: Start implementing the FAT.

MemoryCard: More logging.

FolderMemoryCard: Formatting works now!

Formatted memory card isn't actually recognized as formatted yet because I don't store folder metadata yet, but we're getting there!

FolderMemoryCard: Recognize when it's trying to access a data cluster.

FolderMemoryCard: Add directory/file entry support.

On further inspection this might not a be a good way to handle erasing.

FolderMemoryCard: Method to get a file entry and file path from a file's data cluster.

FolderMemoryCard: wxDirName is garbage, let's just use wxFileName for the folder too...

FolderMemoryCard: Fix Erase method.

FolderMemoryCard: Start implementing file writes.

This is still quite broken but we're getting somewhere here!

FolderMemoryCard: Load the data from the host file system into the memory card on emulation start.

Also store superblock to host file system on end.

FolderMemoryCard: Fix a few warnings.

FolderMemoryCard: Implement file reads.

FolderMemoryCard: Proper ECC reads.

FolderMemoryCard: Reads to unmapped locations should return all 0xFF.

FolderMemoryCard: Some sort of working WriteToFile.

(Note: Doesn't always work depending on what order data gets written...)

FolderMemoryCard: Forgot a 'b' for reading files in binary mode. Whoops.

FolderMemoryCard: Load timestamps from the host filesystem.

FolderMemoryCard: r+b needs the file to exist so create if it doesn't.

FolderMemoryCard: Failsafe to allow non-sequential writes.

FolderMemoryCard: Use a cache for writes. Does not flush to host FS yet!

FolderMemoryCard: Flush the data written to the cache to the host file system on exit.

FolderMemoryCard: Since we have a cache now, remove code related to formatting, it's no longer needed.

FolderMemoryCard: More binary file mode mistakes...

FolderMemoryCard: Make it actually possible to disable/eject cards.

FileMemoryCard: Revert changes made for logging data.

FolderMemoryCard: Remove excessive logging.

MemoryCard: Note that the superblock struct is no longer unused.

FolderMemoryCard: A disabled card shouldn't try writing data on exit.

FolderMemoryCard: Log when flushing data.

FolderMemoryCard: Replace plain constants with const variables.

Should make it easier in the future to change the memory card size, if
needed.

FolderMemoryCard: Sort of handle the case when the total size of files in the memory card folder exceed the size of the card.

Not elegant but prevents ugly errors. The file that caused the card to
"overflow" will be seen as corrupted data by the PS2 browser.

FolderMemoryCard: Some sanity checks.

FolderMemoryCard: superBlock member really should have that m_ too to be consistent.

MemoryCard: Switch back to FileMemoryCard for merging.

FolderMemoryCard: Implement GetCRC() via a timestamp of the last memory card write.

Reasoning:
Regarding auto-ejecting on save load, I see that the current
implementation checks that by comparing memory card CRC and reinserting
if it mismatches. Since it's actually just about seeing if the memory
card state of the savestate and the current state match, my GetCRC() now
returns a millisecond timestamp of the last time the card was written
to. This should work out to the intended result, though I had to use
wxGetLocalTimeMillis() instead of wxGetUTCTimeMillis() since the latter
isn't available for some reason.

Fix GCC warnings and error.

MemoryCard: Switch implementations via a #define.

FolderMemoryCard: Add a NextFrame() method that should be called once per frame. Flushes written data to the host file system after a certain amout of frames have passed without any writes (currently 60).

MemoryCard: Add the NextFrame() method to the plugin API.

Counters: If the FolderMemoryCard is selected, inform it every frame in VSyncEnd() that a frame has passed.

VSyncEnd: Probably better to inform the memory card before the frame limiting.

Fix error when using wxWidgets >= 3.0.

FolderMemoryCard: Extract into its own .h/.cpp files.

FolderMemoryCard: Change cache to a map to reduce memory usage.

FolderMemoryCard: More gracefully handle lack of space when adding files.
2015-07-12 14:37:49 +02:00
..
CDVD small tweak to cdvd read console logs. a little alignment > much more readable. 2015-07-10 21:08:55 +02:00
DebugTools pcsx2: debugger: use standard sprintf function 2015-03-23 23:08:55 +01:00
Docs And the .docs 2014-02-02 12:34:38 +00:00
IPU Removed redundant initialisation code (covered in the resets), reverted a little pointless shuffling. 2014-08-15 14:09:18 +01:00
Linux gtk2: keyboard macro update 2014-12-10 22:09:21 +01:00
RDebug Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
System Always enable debugger 2014-08-15 21:25:30 +02:00
Utilities Changed the FastFormatString functions into nifty little classes that use TLS for their buffer workspaces. Result: a fully concurrent printf with zero malloc/free overhead. Use the pxsFmt macro for them -- which is a fully working alternative to wxsFormat(). 2010-08-03 22:18:19 +00:00
ZipTools copyright: 2012-04-12 06:30:35 +00:00
gui MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
ps2 pcsx2: init some variables 2015-07-10 22:35:26 +02:00
windows MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
x86 Finish previous revert as TortoiseGit failed epicly at it. 2015-06-10 10:11:06 +01:00
AsyncFileReader.h Separate compressed file types into separate files. 2015-04-14 19:24:21 -07:00
CMakeLists.txt MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
COP0.cpp pcsx2: move tlb info from warning to COP0_LOG 2014-12-07 12:20:59 +01:00
COP0.h * Rename cpuBranch[...] functions and vars to cpuEvent[...], which should be more clear and consistent as to their true purpose. (to clarify: events typically run during cpu branch instructions, but most branches don't actually have anything to do with whether or not there are events pending or events being run). 2010-09-05 15:38:14 +00:00
COP2.cpp VIF: Reworked the VU delays in to scheduled events to simulate VU run time without killing Metal Saga or Fahrenheit. Adjusted the COP checks on the VU's to use the same method as the VPU_STAT is never set essentially so the VU is never "running". 2012-04-07 01:48:34 +00:00
Cache.cpp Fix a possibility for out of bound accesses in logging within Cache.cpp 2014-07-03 00:24:16 -04:00
Cache.h Cache Emulation: Updated cache emulation for new VTLB, Dead or Alive 2 (Japanese Version only) now playable. You can enable this under the Recompiler options by ticking the "Enable EE Cache" box, however it will only work with the EE in Interpreter mode. Also fixed some cache bugs from the old implementation. 2011-02-17 21:27:24 +00:00
Common.h * Redid the VIFunpacker's wrapped memory address detection (a bit more compact now) 2010-08-24 17:53:27 +00:00
Config.h Merge pull request #241 from Kingcom/Debugger 2014-08-15 23:31:23 +01:00
Counters.cpp MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
Counters.h MAJOR: All new hwRead and hwWrite handlers (expect regressions). Details: 2010-08-31 05:22:26 +00:00
Dmac.h GIF: 2014-02-26 22:34:02 +00:00
Dump.cpp Make simplifcations in the disassembler optional 2014-08-19 15:45:50 +02:00
Dump.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
Elfheader.cpp Removed System.map symbol file support. 2014-08-15 18:56:42 +01:00
Elfheader.h Initial debugger work by Kingcom. Features: 2014-02-21 14:29:13 +00:00
FPU.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
FiFo.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
GS.cpp Remove init procedures from Hw.cpp 2014-08-15 14:17:35 +10:00
GS.h Remove some slow, redundant memcpy implementations: memcpy_const/memcpy_qwc/memcpy_aligned. 2014-08-27 13:13:48 +10:00
GSState.cpp Refactoring: 2010-08-09 04:10:38 +00:00
GameDatabase.cpp Simplified loops by declaring iterators with 'auto' 2014-08-10 01:48:57 -07:00
GameDatabase.h pcsx2: replace wxStrtoul by ToUlong method 2014-09-27 11:50:31 +02:00
Gif.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
Gif.h Path3 Masking: Games should no longer need the EE Timing fix. General fixes for Need for Speed Underground 2 and other games affected by the change. Hopefully Outrun and Terminator 3 will be ok now too, no promises (as i don't have the games) 2012-05-23 16:22:03 +00:00
Gif_Logger.cpp pcsx2: Implemented Threaded VU1 :D 2011-08-12 02:31:49 +00:00
Gif_Unit.cpp Remove 'elif' define from Pcsx2Defs and microvu_misc.h 2014-07-30 23:44:04 -04:00
Gif_Unit.h Remove all custom memcpy usage from core pcsx2 and remove memcpy_fast from plugins. 2014-08-27 13:45:23 +10:00
Hardware.h Merge const qualifiers and cleanups from ReorderingMTGS: Includes the VIF DIRECT changes, which seem to be stable this time. ;) 2010-07-22 12:20:11 +00:00
Hw.cpp Removed redundant initialisation code (covered in the resets), reverted a little pointless shuffling. 2014-08-15 14:09:18 +01:00
Hw.h Initial work on getting further with PSX mode. Because the PSX rules! 2014-03-06 23:00:09 +00:00
HwRead.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
HwWrite.cpp pcsx2/common: fix tons of warning spamming on clang 2014-07-05 00:08:48 +02:00
Interpreter.cpp pcsx2:tlb:goemon: allocation can be called from 2 places 2014-12-12 22:25:56 +01:00
IopBios.cpp pcsx2: add various default case statement 2014-07-12 12:59:23 +02:00
IopBios.h partially revert c5d2343f51 2014-07-12 13:30:34 +02:00
IopCommon.h You know that commit where I removed the GTE? Apparently I didn't. 2014-08-15 23:22:25 +01:00
IopCounters.cpp Provide a DEV9async and use it to call irq 2015-05-13 10:04:04 +01:00
IopCounters.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopDma.cpp Initial work on getting further with PSX mode. Because the PSX rules! 2014-03-06 23:00:09 +00:00
IopDma.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopHw.cpp Remove redundant memzero_ptr. All compilers use SSE implementation anyway. 2014-08-17 23:23:55 +10:00
IopHw.h Initial work on getting further with PSX mode. Because the PSX rules! 2014-03-06 23:00:09 +00:00
IopIrq.cpp Tests with Grandia Extreme's debugger suggest that SBUS interrupts *never* fire. 2012-03-14 13:10:14 +00:00
IopMem.cpp Remove redundant memzero_ptr. All compilers use SSE implementation anyway. 2014-08-17 23:23:55 +10:00
IopMem.h newHostVM: (WIP, may not run!) -- Applied host virtual memory mapping to the EE/IOP/VU main and on-chip memory banks. Added a new OO-based system allocator object for handling said virtual memory resources. Plus many code cleanups, and some added mess that needs to be cleaned up. 2010-11-15 14:05:02 +00:00
IopModuleNames.cpp Fixed inconsistent newlines / added as many svn:eol-style=native properties as I could without killing myself. 2011-03-25 05:06:49 +00:00
IopSio2.cpp Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
IopSio2.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
MMI.cpp Finish previous revert as TortoiseGit failed epicly at it. 2015-06-10 10:11:06 +01:00
MTGS.cpp Fix when the toggling message appears 2015-06-26 00:49:30 +01:00
MTVU.cpp MTVU: fix linux crash after a shutdown 2015-03-17 09:33:20 +01:00
MTVU.h pcsx2: remove useless volatile 2014-05-03 10:18:26 +02:00
Mdec.cpp spu2-x: Misc Alsa stuff. Added a few missing files into the pcsx2 codeblocks project. 2010-10-13 09:15:54 +00:00
Mdec.h Removed all trailing whitespace in *.c *.cpp *.h because it irritates me. 2010-04-25 00:31:27 +00:00
Memory.cpp pcsx2/common: fix tons of warning spamming on clang 2014-07-05 00:08:48 +02:00
Memory.h Removes the usage of __LINUX__ define 2014-08-03 13:20:36 -05:00
MemoryTypes.h newHostVM: (WIP, may not run!) -- Applied host virtual memory mapping to the EE/IOP/VU main and on-chip memory banks. Added a new OO-based system allocator object for handling said virtual memory resources. Plus many code cleanups, and some added mess that needs to be cleaned up. 2010-11-15 14:05:02 +00:00
MultipartFileReader.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
NakedAsm.h Removes the usage of __LINUX__ define 2014-08-03 13:20:36 -05:00
OutputIsoFile.cpp async-iso: linux. Create an empty FlatFileReader implementation. It will be completed later based on http://code.google.com/p/kernel/wiki/AIOUserGuide 2012-12-03 19:53:27 +00:00
Patch.cpp patches: print the actual patch lines only in verbose mode 2015-02-22 16:53:49 +02:00
Patch.h patches: unify patch application verbosity 2015-02-21 16:19:24 +02:00
Patch_Memory.cpp Cheats: Fixed tab/space mixtures in pcsx2/Patch_Memory.cpp 2014-10-08 16:43:08 +09:00
PathDefs.h Help button/window in debugger (Windows only) 2014-03-23 13:27:48 +01:00
Pcsx2Config.cpp Merge pull request #241 from Kingcom/Debugger 2014-08-15 23:31:23 +01:00
PluginManager.cpp MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
Plugins.h MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
PrecompiledHeader.cpp [copyright] 2010-07-08 16:40:44 +00:00
PrecompiledHeader.h Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
R3000A.cpp Initial work on getting further with PSX mode. Because the PSX rules! 2014-03-06 23:00:09 +00:00
R3000A.h newHostVM: improving error handling and memory management (WIP) 2010-10-28 13:14:18 +00:00
R3000AInterpreter.cpp newHostVM: 2010-11-03 14:18:30 +00:00
R3000AOpcodeTables.cpp Scrapped abortive GTE (PSX GPU) support so that certain people can stop fiddling with untestable code. We don't know whether the PS2 even has a hardware GTE and thanks to the miracle that is source control we can revive this module if needed. 2014-08-15 16:47:42 +01:00
R5900.cpp pcsx2: init some variables 2015-07-10 22:35:26 +02:00
R5900.h pcsx2:tlb: extend goemon gamefix 2014-12-12 22:14:08 +01:00
R5900Exceptions.h Mostly-new host exception system (host meaning the C++ / SEH exceptions, not the VM's PS2/MIPS exceptions). Main purpose is to make specifying diagnostic and end-user messages more sane. Secondary goal was to remove the need for C++ multiple and virtual inheritance, which are buggy in MSVC still, and problematic even when they aren't buggy. 2010-06-28 18:03:54 +00:00
R5900OpcodeImpl.cpp Remove all custom memcpy usage from core pcsx2 and remove memcpy_fast from plugins. 2014-08-27 13:45:23 +10:00
R5900OpcodeTables.cpp Fill in flags for most debugger relevant opcodes 2014-08-22 21:50:05 +02:00
R5900OpcodeTables.h Fill in flags for most debugger relevant opcodes 2014-08-22 21:50:05 +02:00
SPR.cpp Less verbose SPR stall control logging, avoids fps dives in ST:Voyager 2015-02-15 18:09:14 +01:00
SPR.h Remove init procedures from Hw.cpp 2014-08-15 14:17:35 +10:00
SamplProf.h pcsx2: don't use 0&& to remove code 2014-07-12 12:59:23 +02:00
SaveState.cpp Remove all custom memcpy usage from core pcsx2 and remove memcpy_fast from plugins. 2014-08-27 13:45:23 +10:00
SaveState.h VIF/VU: Removed all the everblue crap, found another way of doing it. As the savestate bummp wasn't needed anymore, i've put it back again. savestate users rejoyce? 2013-02-05 23:30:25 +00:00
ShiftJisToUnicode.cpp [copyright] 2010-07-09 15:36:09 +00:00
Sif.cpp Remove init procedures from Hw.cpp 2014-08-15 14:17:35 +10:00
Sif.h Remove all custom memcpy usage from core pcsx2 and remove memcpy_fast from plugins. 2014-08-27 13:45:23 +10:00
Sif0.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
Sif1.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
Sifcmd.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
Sio.cpp MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
Sio.h MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
SourceLog.cpp pcsx2 i18n: 2011-02-25 18:16:53 +00:00
SysForwardDefs.h dummy update to test the buildbot versioning 2015-01-29 15:14:00 +02:00
System.cpp MTVU: fix linux crash after a shutdown 2015-03-17 09:33:20 +01:00
System.h sVU: add an option to remove it 2015-01-06 23:45:43 +01:00
VU.h microVU: 2013-03-11 21:54:05 +00:00
VU0.cpp -Bumped savestate version, forgot to do that in my last commit. 2012-04-07 12:27:19 +00:00
VU0micro.cpp VIF: EXPERIMENTAL, NOT SANITY CHECKED: Delayed VU execution until the next flush, mpg, microprogram call or (as a fallback) end of dma packet to deal with cases like MSCAL, UNPACK, MSCAL (expects the first program to receive the unpack data). 2012-09-05 20:13:50 +00:00
VU0microInterp.cpp microVU: 2013-03-11 21:54:05 +00:00
VU1micro.cpp VIF: EXPERIMENTAL, NOT SANITY CHECKED: Delayed VU execution until the next flush, mpg, microprogram call or (as a fallback) end of dma packet to deal with cases like MSCAL, UNPACK, MSCAL (expects the first program to receive the unpack data). 2012-09-05 20:13:50 +00:00
VU1microInterp.cpp microVU: 2013-03-11 21:54:05 +00:00
VUflags.cpp Refactoring: 2010-08-09 04:10:38 +00:00
VUflags.h Copyright 2010 : PCSX2 and plugins! (notable exception: didn't update copyright info in any Gabest plugins) 2010-05-03 14:08:02 +00:00
VUmicro.cpp Add a dev notice for a tweak point with VU0 Macro/Micro updates. 2012-11-13 16:47:51 +00:00
VUmicro.h partially revert c5d2343f51 2014-07-12 13:30:34 +02:00
VUmicroMem.cpp pcsx2: Implemented Threaded VU1 :D 2011-08-12 02:31:49 +00:00
VUops.cpp Removed unused variables. 2014-08-15 13:55:19 +01:00
VUops.h General emulator memory work, regarding my new policy that most (or all) cpu and hardware registers should be standard globals, as it makes our lives a lot easier in general (and their memory footprint is small so it won't adversely affect the virtual memory availability of the host operating systems). Details: 2010-08-27 03:21:16 +00:00
Vif.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
Vif.h VIF: Put in a check to make sure VIF doesn't break during a FIFO write. 2013-02-18 21:17:35 +00:00
Vif0_Dma.cpp VIF-MFIFO: Fix for stalls on wait instructions, fixes Stuart Little 3 2015-06-27 22:47:44 +01:00
Vif1_Dma.cpp VIF-MFIFO: Fix for stalls on wait instructions, fixes Stuart Little 3 2015-06-27 22:47:44 +01:00
Vif1_MFIFO.cpp VIF-MFIFO: Fix for stalls on wait instructions, fixes Stuart Little 3 2015-06-27 22:47:44 +01:00
Vif_Codes.cpp Remove all custom memcpy usage from core pcsx2 and remove memcpy_fast from plugins. 2014-08-27 13:45:23 +10:00
Vif_Dma.h Vif Unpacks: After further tests on the PS2, think i have these down. 2015-06-06 00:05:52 +01:00
Vif_Transfer.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
Vif_Unpack.cpp Vif Unpacks: After further tests on the PS2, think i have these down. 2015-06-06 00:05:52 +01:00
Vif_Unpack.h GCC compilation fixes. 2010-09-13 22:52:04 +00:00
cheatscpp.h Removed all trailing whitespace in *.c *.cpp *.h because it irritates me. 2010-04-25 00:31:27 +00:00
sif2.cpp Removed `using std::min/max` from PCH 2014-08-14 14:55:52 -07:00
sio_internal.h SIO: KrossX new changes for Memcards, seems ok on a test of random 10-15 random games, please report if any errors appear! 2013-12-29 21:57:17 +00:00
vtlb.cpp pcsx2:tlb: improve goemon gamefix log 2014-12-12 22:14:08 +01:00
vtlb.h pcsx2:tlb: extend goemon gamefix 2014-12-12 22:14:08 +01:00