sábado, 5 de mayo de 2012

Some improvements

I am working on supporting x64 right now (with atrac3+ support on windows) and improving the compiler performance. Also I have improved the memcpy, memset emulator is using internally making it much faster (almost 10x). Also I have been working on improving lwl/lwr instructions that allow to read unaligned words. https://github.com/soywiz/cspspemu/issues/42

Results are awesome. And make lot of compilerPerf tests 10x faster than a real PSP.

You can see the results here (running in 64-bits and with the new lwl/lwr improvement):
64-bits fixed the LWC1 performance problem on Intel platforms.



Still lots of things to improve:

  • Local variable usage
  • Improve function calling

6 comentarios:

  1. I don't know waht most of these means but the LWCI dropped from 3000 to 97 from x86 to x64. But function calls still high. The lower the values before ms and the higher the % in the end means better results, am I right?

    ResponderEliminar
  2. The lower time, the better. The higher % the better. % is relative to the calculated for the real PSP. So 200% means its twice as fast as the PSP.
    Function calls are a part I have not optimized yet. But, step by step.

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Thanks!
    It will take some time to get at the level of the great jpcsp.
    They made an awesome work.
    JVM doesn't allow direct unsafe access, so we are working on different approaches.
    C# allow to have an hybrid managed/unmanaged approach.
    And that's why I started this emulator.
    To get a cleaner, easier to understand and faster implementation.
    But jpcsp is still the most advanced PSP emulator at this point and in the near/middle-term future.

    ResponderEliminar
    Respuestas
    1. But the bad thing about Jpcsp it need Nvidia Card to be able to play games in it
      and i have HD 6850 so i wont sell this to buy nvidia card :D
      i hope this emulator works at all cards :)

      Eliminar