1d46800888
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. |
||
---|---|---|
3rdparty | ||
bin | ||
cmake | ||
common | ||
debian-packager | ||
fps2bios | ||
linux_various | ||
locales | ||
nsis | ||
pcsx2 | ||
plugins | ||
tools | ||
.gitignore | ||
CMakeLists.txt | ||
CONTRIBUTING.md | ||
COPYING.GPLv2 | ||
COPYING.GPLv3 | ||
COPYING.LGPLv2.1 | ||
COPYING.LGPLv3 | ||
README.md | ||
build.cmd | ||
build.sh | ||
clean_msvc.cmd | ||
old_plugins_2013.sln | ||
pcsx2_suite_2012.sln | ||
pcsx2_suite_2013.sln | ||
rebuild.sh |
README.md
PCSX2 is an open source Playstation 2 emulator. Its purpose is to mimic the the PS2 hardware, using a combination of MIPS CPU Interpreters, Recompilers and a Virtual Machine which manages hardware states and PS2 system memory.
Project Details
The PCSX2 project has been running for more than ten years. Once able to run only a few public domain demos, recent versions enable many games to work at full speed, including popular titles such as Final Fantasy X or Devil May Cry 3. Visit the PCSX2 homepage to check the latest compatibility status of games (with more than 2000 titles tested), or ask your doubts in the Official forums.
The latest officially released version is 1.2.1 (SVN r5875). Installers and binaries for both Windows and Linux are available from our homepage.
System Requirements
Minimum
- Windows/Linux OS
- CPU: Any that supports SSE2 (Pentium 4 and up, Athlon64 and up)
- GPU: Any that supports Pixel Shader model 2.0, except Nvidia FX series (broken SM2.0, too slow anyway)
- 512MB RAM (note Vista needs at least 2GB to run reliably)
Recommended
- Windows Vista / Windows 7 (32bit or 64bit) with the latest DirectX
- CPU: Intel Core 2 Duo @ 3.2ghz or better
- GPU: 8800gt or better (for Direct3D10 support)
- RAM: 1GB on Linux/Windows XP, 2GB or more on Vista
Note: Because of copyright issues, and the complexity of trying to work around it, you need a BIOS dump extracted from a legitimately owned Playstation 2 console to use the emulator.
Note: PCSX2 mainly takes advantage of 2 CPU cores. As of r4865 PCSX2 can now take advantage of a 3rd core using the MTVU speedhack. This can be a significant speedup on CPUs with 3+ cores, however on GS limited games (or on dual core CPUs) it may be a slowdown.