PCSX2 - The Playstation 2 Emulator
Go to file
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
3rdparty Merge pull request #631 from turtleli/wxwidgets3_3rd_party_prep_v3 2015-07-11 09:52:01 +02:00
bin Improved the HD-fix for Drakan 2 PAL. 2015-06-27 13:56:04 +02:00
cmake gsdx: make png++ optional 2015-06-04 20:22:05 +02:00
common MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
debian-packager debian: drop very old conflict/replace 2015-06-04 19:35:41 +02:00
fps2bios Avoid leaking `romdir` file handle 2014-07-23 11:42:05 -04:00
linux_various Changed executable to "env __GL_THREADED_OPTIMIZATIONS=1 PCSX2" 2015-05-18 22:03:28 +03:00
locales i10n: update tr_TR (turkish) 2015-05-18 07:23:28 +02:00
nsis These are also not needed anymore. 2014-07-16 12:46:01 +02:00
pcsx2 MemoryCard: Full initial implementation of the FolderMemoryCard. 2015-07-12 14:37:49 +02:00
plugins gsdx: move some CRC hacks to full level 2015-07-11 15:14:11 +02:00
tools drop support of Visual Studio 2010 2015-06-04 08:55:22 +02:00
.gitignore configure wxWidgets 3.0, update .gitignore 2015-07-03 10:05:59 +01:00
CMakeLists.txt linux: rename everything. It is PCSX2 is uppercase letter 2015-05-18 10:04:23 +02:00
CONTRIBUTING.md stupid space 2014-07-09 15:46:46 +02:00
COPYING.GPLv2 copyright again: 2012-04-18 14:09:18 +00:00
COPYING.GPLv3 copyright again: 2012-04-18 14:09:18 +00:00
COPYING.LGPLv2.1 copyright again: 2012-04-18 14:09:18 +00:00
COPYING.LGPLv3 copyright again: 2012-04-18 14:09:18 +00:00
README.md Fix a typo in README 2014-07-31 00:48:24 -04:00
build.cmd Added usage example and GNU License comments. 2014-08-04 13:14:32 -03:00
build.sh gsdx-linux: Don't enable EGL by default 2015-05-11 15:33:40 +02:00
clean_msvc.cmd Minor fixes to selecting isos and changing cdvd source types. 2010-04-27 16:20:49 +00:00
old_plugins_2013.sln remove zzogl-pg-cg 2014-12-13 12:28:37 +01:00
pcsx2_suite_2012.sln Separate old plugins from the main project files (Windows). 2014-09-06 00:52:23 +02:00
pcsx2_suite_2013.sln 3rdparty/opencl 2014-12-02 00:16:34 +01:00
rebuild.sh copyright again: 2012-04-18 14:09:18 +00:00

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.

KOF 2002 Final Fantasy XII Odin Sphere

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)
  • 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.

Pro Evo 2009 Megaman X8 TOTA