PCSX2 - The Playstation 2 Emulator
Go to file
avihal b4a0af9769 GSdx: New: Dynamic CRC Hacks system (disabled by default).
See tools/dynacrchack/DynaCrcHack.c for full instructions.

For development of CRC hacks (and just for the fun of creating such a system), Allows GSdx to load and use CRC hack logic from an external DLL, and reload it, at runtime, whenever this DLL changes (but act normally if this DLL isn't found).

This external DLL is compiled from a single C source file (a sample is provided, containing the current MGS3 CRC hack logic). There's also a system to automatically compile this C file into the DLL whenever the C file is modified, thus creating a system of instant [save C file] -> [GSdx switches to the new logic].

It's actually a pretty cool system, and might have other usages where it's useful, for the sake of tests/development/tweaking, to modify code logic during runtime. The overhead of such system compared to pre-compiled code is very low (e.g., in the case of CRC hacks which are called thousands of times/sec, I couldn't notice any difference in performance).

Compilation of the C file is currently done using TCC (Tiny C Compiler - http://bellard.org/tcc/ - extremely fast, light and powerful). TCC itself needs to be downloaded separately (~250K download, no install required). The system currently supports Windows only.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@4914 96395faa-99c1-11dd-bbfe-3dabce05a288
2011-09-07 18:38:27 +00:00
3rdparty cmake: fix some linking issue with gold linker (AFAIK only fedora use it for the moment) 2011-09-06 19:07:55 +00:00
bin Whoops sorry the file slipped through. 2011-09-04 01:51:20 +00:00
cmake cmake: fix some linking issue with gold linker (AFAIK only fedora use it for the moment) 2011-09-06 19:07:55 +00:00
common cmake: fix some linking issue with gold linker (AFAIK only fedora use it for the moment) 2011-09-06 19:07:55 +00:00
debian-unstable-upstream linux: clean various linux file into 1 directory 2011-09-04 20:39:19 +00:00
debian-upstream debian: do not bundle ZeroGSShaders. Now the tarball is 100% free :) 2010-10-09 11:37:41 +00:00
fps2bios Removed all trailing whitespace in *.c *.cpp *.h because it irritates me. 2010-04-25 00:31:27 +00:00
linux_various linux: clean various linux file into 1 directory 2011-09-04 20:39:19 +00:00
locales i18n: round 2, fix po and upload new version of pt_BR/pl_PL/es_ES/sv_SE 2011-06-13 14:08:01 +00:00
nsis Installer changes to support the new docs. 2011-04-07 19:52:47 +00:00
pcsx2 Made USBsetRAM work again. Required for the following commit. 2011-09-04 01:49:34 +00:00
plugins GSdx: New: Dynamic CRC Hacks system (disabled by default). 2011-09-07 18:38:27 +00:00
tools GSdx: New: Dynamic CRC Hacks system (disabled by default). 2011-09-07 18:38:27 +00:00
CMakeLists.txt linux: clean various linux file into 1 directory 2011-09-04 20:39:19 +00:00
build-plugins.sh Got rid of various obsolete files, and moved the codeblocks workspace file. 2009-09-09 10:02:12 +00:00
build.rb Fixed up the Linux build. A couple minor OnePad changes. 2009-07-11 17:21:23 +00:00
clean_msvc.cmd Minor fixes to selecting isos and changing cdvd source types. 2010-04-27 16:20:49 +00:00
pcsx2-codeblocks.workspace GSdx: Correct the sdl library output name, and add sdl to the main codeblocks workspace. 2011-02-26 03:05:31 +00:00
pcsx2_suite_2008.sln GSdx: just updating visual studio project files (redundant settings, broken x64 compilation, etc.) 2011-02-24 04:55:35 +00:00
pcsx2_suite_2010.sln USBqemu: Integrate into the build system for vs2010. Refactor the config stuff to use a system based on a modified SPU2-X CfgHelpers.cpp. 2011-09-04 11:48:28 +00:00
rebuild.sh Correct the script, so that Linux is compilable. (If rebuild.sh is run before compiling.) 2009-09-07 00:50:36 +00:00