This is a non-exhaustive list of current goals made possible with the support of our generous patrons.
Short term goals
Improve SPU/PPU LLVM recompiler compatibility, add more optimizations. (Nekotekina)
Implement parametrized PPU/SPU Interpreters reusing current LLVM IR generator, remove original hard-coded interpreters and make LLVM mandatory. Add options regulating its accuracy detached from the base choice of the Interpreter or the Recompiler. (Nekotekina)
Improve communication between surface and texture cache. (kd-11)
Support for variable sized framebuffers to prevent data losses due to data clipping in surface cache. (kd-11)
Support multisampled textures in the rendering pipeline to support MSAA and the other effects that go with that e.g alpha-to-coverage and alpha-to-one. (kd-11)
Integrate the base framework for GPU-side program decompiler. (kd-11, DH)
Medium term goals
Improve SPU instruction accuracy for Fast Interpreter and ASMJIT, investigate vectorized software FP implementation.
Improve audio and video decoders for better speed and compatibility.
Improve controller support. This includes emulated controllers (with mouse or keyboard) and real controllers as well.
Improve solution structure, move and rename some files.
Implement missing syscalls. Allow to LLE more system modules.
Write automatic tests to minimize bugs.
Enable hardware acceleration for decryption (AES-NI). (#2457)
Implement config tristate in GUI for per-game configurations.
Improvements to the shader generation and cache system
Remove obstacles for ASLR support. (Nekotekina)
Rewrite signal handlers to improve reliability and support exceptions. (Nekotekina)
Long term goals
Support booting from original game discs.
Implement user manager.
Support mic, camera, USB peripherals, etc.
Implement network functionality.
Implement every system module in the emulator. This will allow the emulator to work without the PS3 firmware.
Never-ending goals
Improve game compatibility by fixing bugs and missing functionality.
Continue to improve emulation speed and accuracy.
Improve performance and compatibility of all renderers.
For developers
Parse .eh_frame section in PPU analyser and use this information in LLVM recompiler.
Implement MFC_DMA_TAG_CMD_STALL_NOTIFY_EVENT and other SPU events.
Return error_code from syscalls and functions to enable error reporting.
Cleanup the VS project files: reduce to two build types (Release and Debug), but both must use Release LLVM build. Debug build should include memory leak detection features.