PDA

View Full Version : Problems Runing pcsx2 for linux


oangelo
April 5th, 2007, 13:40
I tested both the binaries on the site, but the 64 bits shows the menu with a good fps but I can't get into the game, the 32 bit version works, but is very slow.
It's strange that the 32bits binary show SS3 disable and 64 bits always show enable, I recompiled(changing the build options) but still the same problem, the game stops or pcsx2 close with a segmentation fault.

I am using
Linux/Gentoo
nVidia Corporation C51G [GeForce 6100] 256mb
1,5GB DDR

$cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 15
model : 47
model name : AMD Athlon(tm) 64 Processor 3800+
stepping : 2
cpu MHz : 2410.999
cache size : 512 KB
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt lm 3dnowext 3dnow up pni lahf_lm
bogomips : 4826.34
TLB size : 1024 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management: ts fid vid ttp tm stc

Please help!

bleh
April 5th, 2007, 14:08
extern "C" void cpudetectSSE3(void* pfnCallSSE3)
{
cpucaps.hasStreamingSIMD3Extensions = 1;

#ifdef _MSC_VER
__try {
//__asm call pfnCallSSE3;
((TESTFNPTR)pfnCallSSE3)();
}
__except(EXCEPTION_EXECUTE_HANDLER) {
cpucaps.hasStreamingSIMD3Extensions = 0;
#ifdef PCSX2_VIRTUAL_MEM
// necessary since can potentially kill the custom handler
install_my_handler();
#endif
}
#else // linux
// exception handling doesn't work, so disable for x86 builds of linux

#ifndef __x86_64__
cpucaps.hasStreamingSIMD3Extensions = 0;
#endif
// try {
// __asm__("call *%0" : : "m"(pfnCallSSE3) );
// }
// catch(...) {
// SysPrintf("no SSE3 found\n");
// cpucaps.hasStreamingSIMD3Extensions = 0;
// }
#endif
}

SSE3 is disabled on linux 32bit systems (don't ask me why).

oangelo
April 5th, 2007, 14:20
Do you think this is some bug in the emu? Because i think that has no SSE3 on my processor as show in the /proc/cpuinfo, can this make the emulator to stop or a segmentation fault???

spread
April 5th, 2007, 21:13
actually under x86_64 it assumes to have sse3 present.
so if your processor does not support sse3 change the

cpucaps.hasStreamingSIMD3Extensions = 1;

to

cpucaps.hasStreamingSIMD3Extensions = 0;

works flawlessly.

oangelo
April 5th, 2007, 23:56
And where i suppose to change this? in witch archive??
thank you dude!

Ok I changed the

cpucaps.hasStreamingSIMD3Extensions = 1;
to
cpucaps.hasStreamingSIMD3Extensions = 0;

on the archive pcsx2/x86/iCore.cpp.
The emulator now shows Not Detected SSE3
but i sill have game stops or pcsx2 close with a segmentation fault on various games that suppose to work!!!
Any ideas???