49w ago - While it hasn't been long since his
previous release, today PlayStation 3 developer
KDSBest has updated the PS3 SPU Emulation Module to version 0.8.1, which allows x86 PCs to emulate the SPU.
Download:
PS3 SPU Emulation v0.8.1 Module
Below are some related Tweets on the update via Twitter (linked above), as follows:
New spu emu soon dump function calls and channel access and so on.. btw no spu stuff just optimised code
Crypto function instructions implemented, aim_spu_module runs fine (v0.8).
Thanks to my tester we found a heavy bug which made the aim not run correctly. Fixing it.
I still got a problem with one instruction, the problem is idk what instruction, but aim decrypts the eid0 section fine with spu emu (v0.8.1).
Download: http://gitbrew.org/~KDSBest/SPU%20simulation%20v0.9.rar
Below are some related updates via Twitter (linked above):
Found the mistake in SPU Emu... -.- FAIL! sf* commands do rb-ra I did ra-rb -.- works perfectly now.
The sp somehow land in code section and overrides destroys code. so i don't update the code while the ls changes. This does the trick hotfix.
New spu emu soon dump function calls and channel access and so on.
SPU Emu v0.9: fixed sf* instructions and bugfixes and callstack functions. Dumps all branches now files get big ^^.
More PlayStation 3 News...
Download: http://gitbrew.org/~KDSBest/SPU%20simulation%20v0.8.rar
To quote via Twitter (linked above):
The aim module runs to the hash check of EID0 which fails, cause I miss the data. SPU Emulation v0.8: gitbrew.org/~KDSBest/SPU%20simulation%20v0.8.rar
Extract the ofw 3.55 and there is the aim_spu_module.self. Make an elf of it. There you go. It's sony code I can't give it to u.
I love Physic Engines and I love the PS3. I guess I will port Box2D to psl1ght ^^
For the news sites: gitbrew.org/~KDSBest/SPU%20simulation%20v0.8.rar ... crypto function instructions implemented, aim_spu_module runs fine.
A tester tested the eid0 partial decryption of aim in anergistuc and in the spu emu. They match. Gj myself
More PlayStation 3 News...
Download: http://multiupload.biz/o9bqeecgpvco/SPU%20simulation%20beta2_MultiUpload.biz.rar.html
To quote: Long time no see guys. I release SPU Emu Beta 2.
Since I am sick at current time and constant headache I just release what I already got. There are features to dump the LS parts, Register and so on.
Check out the source or metldr.kds for more infos. The kds script don't use all featues which are implemented but the most common one.
More PlayStation 3 News...
nah, x86/x64 computer wont be able to reach ppc's power. it's MIPS vs FLOPS
If you compare a Corei7 high end processor can do 70gflops with all cores being used while PS3 had 25Gflops multiply it to 6 SPU's so if you know how to multiply, there's no where it can be emulated right now. Unless someone is brave enough to use a videocard as the alternative processor since GPU's processing capability is much more powerful than x86/x64 processor does.
Download: http://multiupload.biz/8ge4s19t0ja5/SPU%20simulation%20beta_MultiUpload.biz.rar.html
To quote: Let's call it beta (SPU emulation). Tested with my own elf a lot commands if they work properly. Disabled buttons depending on state.
And last but not least, if you press run a new thread is spawned. Now you are able to press pause and it stops the run ofc. The performance get a super boost with the threading.
Project Update: alpha2 - pre alpha so it is not in pre alpha stage anymore. It detects code modifications on the fly too. The new feature list is not complete that's my fault I guess.
Thanks for the news update. I need some infos from some reversers to create the next stunning feature:
Crypto dumping... dumps all crypto calls... Let's call it function parameter dumping cause it will work for everything and will implement a callback on known functions which will make dumping at certain calls possible.
I try to implement this and GET/PUT DMA commands this weekend. I think I can't finish it this weekend, but this will be the beta stage. V0.9 should then just implement the rest of the commands that anergistic implements.
After that it is unknown what I do and so on. Since then my reversing starts to get more focus.
Update: From mr_wicked: I was trying to run an SPU module in anergistic with no success. In IBM systemsim (in combination with libspe2) my code ran just fine..
Finding a broken instruction in anergistic is like finding a needle in a haystack. So I ended up throwing IBM systemsim in IDA and exported all SPU instructions to .asm. After writing a small emulator around these instructions I was able to find two nasty errors. One in "andhi" and one in the "cgx" instruction. Here are the corrected Anergistic instructions:
00010101,ri10,andhi,half,signed
{
int i;
for (i = 0; i < 8; ++i)
rth[i] = rah[i] & i10;
}
01101000010,rr,cgx
{
int i;
for (i = 0; i < 4; ++i)
{
u64 r = (u64)(rtw[i] & 1) + (u64) raw[i] + (u64) rbw[i];
rtw[i] = (r >> 32) & 1;
}
}
00111001100,rr,rotqbybi
{
u32 shift_count = (rbw[0] & 0x7f) >> 3;
rtw[0] = raw[0];
rtw[1] = raw[1];
rtw[2] = raw[2];
rtw[3] = raw[3];
while (shift_count--)
{
rtw[0] = (rtw[0] > 24);
rtw[1] = (rtw[1] > 24);
rtw[2] = (rtw[2] > 24);
rtw[3] = (rtw[3] > 24);
}
}
00111011000,rr,rotqbi
{
u32 shift_count = (rbw[0] & 0x7f) & 7;
rtw[0] = raw[0];
rtw[1] = raw[1];
rtw[2] = raw[2];
rtw[3] = raw[3];
while (shift_count--)
{
u32 t = (rtw[1] >> 31) | 2 * rtw[0];
rtw[1] = (rtw[2] >> 31) | 2 * rtw[1];
rtw[2] = (rtw[3] >> 31) | 2 * rtw[2];
rtw[3] = (rtw[0] >> 31) | 2 * rtw[3];
rtw[0] = t;
}
}
More PlayStation 3 News...