sábado, 19 de mayo de 2012

More news about ilcc (and a working sample/benchmark) .NET C Compiler

I have reached a new milestone. I have been fixing bugs and now I can compile and run successfully one of my programs. It is a compression tool, that is great for benchmarking. So I have made a benchmark to test the performance of the .NET code in terms of the native code.


You can try the sample by yourself:

Native executables are build using microsoft c/c++ compiler with "cl /Ox" (maximum optimizations).


comptoe_ilcc.exe -c3 file.7z file.7z.c3
Encoding[03] file.7z -> file.7z.c3...Success
Elapsed: 1225


comptoe_native_cl_x86.exe -c3 file.7z file.7z.c3
Encoding[03] file.7z -> file.7z.c3...Success
Elapsed: 810

miércoles, 16 de mayo de 2012

About the progress and a new awesome (and related) project! : ilcc

Lately we are commiting much less to the project that before. That's because I'm working on another project. It is a project related to cspspemu. Indeed I started that project to cover an unimplemented area of the emulator in the best possible way: the video decoding part.

So, which project I have started? I tried to port ffmpeg code to C# by hand, and overwhelmed for the titanic work. Other way would have been to create pinvokes for the ffmpeg DLLs, but I don't like the idea since I would like it to be portable. So what's my approach?

To compile ffmpeg into .NET. How? With the project I'm working on:


lunes, 7 de mayo de 2012

EmuReleases.com and new WIP/GIT releases!

I have created a new site where I will put all the WIP/GIT releases.


I have added in the left side a feed with the lastest builds so you can grab and test them.

You can try the last build:

I won't say what includes exactly until the official release, but it can run some more games, and other games that hanged randomly or went slow are now running smoothly.

Tested games:

  • Puzzle Bubble (WIP BEZIER)
  • Tales of Eternia (no more hangs)
  • Astonishia Story (no more hangs)
  • Breath of Fire III   (no more hangs)
  • Luxor (it seems to run fine)
  • Phantasy Star Portable (now get into the menus and display some text)
  • Tekken 5 (now get into the menus)
This includes portuguese and italian translations:

  • Portuguese: e-COS
  • Italian: gambe
  • Spanish: me
Now that you have all the builds, you can try several builds in order to check for regressions.

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

jueves, 3 de mayo de 2012