If you don't mind working in Linux then Gregory already has a list of tasks that are accomplishable even if you aren't a C++ whiz.
Here is the link, and the tasks I'm referring to specifically are cleaning the GCC flags and cleaning GCC warnings.
I've been working on getting PCSX2 to compile and run with Clang for the past week or so and have managed to succeed, but only on development builds without any optimizations on. PCSX2 is very sensitive to compile time optimization flags, which is why it's not using generic -O0, -O1, and -O2 (no optimization, some optimization, and full optimization, respectively) flags, and instead maintains a list of about 30 individual optimization flags that are turned on for release builds (and off for development builds). This is very not good, especially for the clang port I've been working on. The GCC individual optimization flags aren't recognized by clang so I can't use them as a starting point. Moreover, any bump in optimization (from -O0 to -O1 in my case) causes clang built PCSX2 to crash (and probably GCC built PCSX2 to crash as well, but I haven't had the chance to test this).
So what needs to be done is the following:
- Determine what individual optimization flags break PCSX2
- Determine exactly where in the compiled code the offending flags actually break pcsx2
- send both compiled executables to a developer, and (if you know how) a diff of the disassembly at the point that PCSX2 breaks
- Have the developer fix the offending code.
- Test the fix and make sure it doesn't break anything else
- Celebrate and have a beer because this is an important fix
Unfortunately, this only works if an individual optimization breaks PCSX2. If, for example, -SpecificOptimization1 and -SpecificOptimization2 don't break PCSX2 when enabled individually, but do break PCSX2 when both are enabled together, then there's not a whole lot to be done, mostly because determining that this is the case is impossible (Clang sets 39 flags for -O1 optimization. That means there are 39! (39 factorial) combinations of flags that could potentially break PCSX2. Assuming a 5 minute build/deploy/test cycle, you would experience the heat death of the universe before you enumerated every bad combination of optimization flags).
In order to fix that, the only thing that can be done is code cleanup.
Anyway, if anyone wants to do something, that's a great starting point. It shouldn't take more than basic C++, linux, and git skills. I'm happy to help out anyone with the task (especially if you work on my Clang fork and clean up clang flags). My fork is
here, by the way. If you want to help out but don't have too much experience then my fork
might be an easier place to start. I've updated the old Code::Blocks IDE project files that were removed a few months ago and they work well as far as I can tell, so you won't have to worry about cmake and stuff. Plus developing in an IDE is usually easier for beginners.