Roadmap

Ivan edited this page May 31, 2018 · 177 revisions

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 useful optimizations. (Nekotekina)
  • Use compression to store compiled PPU modules. (Nekotekina)
  • Rewrite SSSE3-using code using runtime compilation for better consistency. (Nekotekina)
  • Fix some engine-specific rendering issues (kd-11)
  • Improve the shader decompiler/recompiler (kd-11)
  • Fix remaining problems with texture readback (write color buffers) (kd-11)

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
  • 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)
  • 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.
  • Improve embedded debugging tools (CPU, RSX, Kernel Explorer).
  • Implement BPIP for synchronization primitives.
  • 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.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.