Hello There, Guest! Register

ZEN Pinball Demo [NPUB90239]
#1
Demo game. Nothing to show but log stops at error: E {PPU[1] Thread (main_thread)[0x005e4fd0]} Exception: decode_x64_reg_op(00007FF732AF622F): unsupported opcode found (0x0F, 0xB6, 0x0C)
Anything useful?
Reply
#2
Oh, interesting. Can you set breakpoint at decode_x64_reg_op and post a backtrace?

Well, I don't need it anymore, thanks.

When I fix it, you will see: G: E {PPU[1] Thread (main_thread)[0x0060cc90]} Exception: Access violation reading location 0xfffffffe (is_alive=1, last_syscall=0x0 (Unknown func id: 0x00000000))
(bwahaha)
Reply
#3
(01-13-2015, 09:57 PM)NekotekinaHito Wrote: Oh, interesting. Can you set breakpoint at decode_x64_reg_op and post a backtrace?

Well, I don't need it anymore, thanks.

When I fix it, you will see: G: E {PPU[1] Thread (main_thread)[0x0060cc90]} Exception: Access violation reading location 0xfffffffe (is_alive=1, last_syscall=0x0 (Unknown func id: 0x00000000))
(bwahaha)

today you are so funny Smile
i have new errors with your implementation, i post it later in PM.

sorry for my terrible english Confused
Reply
#4
again opcode error
interpreter - W {PPU[1] Thread (main_thread)[0x005e4fd0]} decode_x64_reg_op(000000013fe83753h): unsupported opcode found (0FB61428488B4708488B6C24384A8994)

interpreter 2 - W {PPU[1] Thread (main_thread)[0x005e4fd0]} decode_x64_reg_op(000000013ffbfe4ch): unsupported opcode found (0FB60C06488B7424408BC248C1E81583)
Reply
#5
opcode errors gone/fixed

Right now, stopping error is
Code:
E {PPU[0x26] Thread (Network thread)[0x006b5d84]} Exception:
(in file C:\rpcs3\rpcs3\Emu\SysCalls\Modules\cellSysutilAvc2.cpp:314, in function cellSysutilAvc2IsCameraAttached)
Game continues after resuming, but stops with no reason.
Reply
#6
(09-04-2015, 05:11 AM)ps0ne Wrote: opcode errors gone/fixed

Right now, stopping error is
Code:
E {PPU[0x26] Thread (Network thread)[0x006b5d84]} Exception:
(in file C:\rpcs3\rpcs3\Emu\SysCalls\Modules\cellSysutilAvc2.cpp:314, in function cellSysutilAvc2IsCameraAttached)
Game continues after resuming, but stops with no reason.

I'll look into implementing the given function.
Reply
#7
(09-04-2015, 09:17 AM)tambre Wrote:
(09-04-2015, 05:11 AM)ps0ne Wrote: opcode errors gone/fixed

Right now, stopping error is
Code:
E {PPU[0x26] Thread (Network thread)[0x006b5d84]} Exception:
(in file C:\rpcs3\rpcs3\Emu\SysCalls\Modules\cellSysutilAvc2.cpp:314, in function cellSysutilAvc2IsCameraAttached)
Game continues after resuming, but stops with no reason.

I'll look into implementing the given function.

The given function has been implemented, and is part of this PR.
Reply
#8
NiceSmile I pause then resume game to get rid of consecutive cellSysutilAvc2IsCameraAttached todo.

RSX debuger shows some garbled textures, Some looks like pinball table, so we got somewhere at least Smile

Game stops mysteriously without any error at texture with clouds.
Reply
#9
No display, same disrupted textures as earlier.

But game goes farer. At the end there is an error
Code:
RSX: W {rsx::thread} VP not found in buffer!
RSX: W {rsx::thread} FP not found in buffer!
RSX: E {rsx::thread} Failed to compile shader: Fragment shader failed to compile with the following errors:
ERROR: 0:76: error(#366) 'use sampler/image in interface block' require extension GL_ARB_bindless_texture. but it is not supported on this card
ERROR: 0:94: error(#143) Undeclared identifier: fc48
ERROR: 0:94: error(#216) Vector field selection out of range "xyz"
ERROR: 0:94: error(#202) No matching overloaded function found: dot
ERROR: 0:95: error(#143) Undeclared identifier: fc80
ERROR: 0:95: error(#216) Vector field selection out of range "xyz"
ERROR: 0:95: error(#202) No matching overloaded function found: dot
ERROR: 0:96: error(#143) Undeclared identifier: fc112
ERROR: 0:97: error(#143) Undeclared identifier: fc144
ERROR: 0:97: error(#216) Vector field selection out of range "xyz"
ERROR: 0:97: error(#202) No matching overloaded function found: dot
ERROR: 0:98: error(#143) Undeclared identifier: fc176
ERROR: 0:101: error(#143) Undeclared identifier: fc240
ERROR: 0:103: error(#143) Undeclared identifier: fc288
ERROR: 0:103: error(#216) Vector field selection out of range "xyz"
ERROR: 0:103: error(#160) Cannot convert from: "float" to: "highp 3-component vector of vec3"
ERROR: 0:104: error(#143) Undeclared identifier: fc320
ERROR: 0:104: error(#216) Vector field selection out of range "xyz"
ERROR: 0:104: error(#202) No matching overloaded function found: dot
ERROR: 0:105: error(#143) Undeclared identifier: fc352
ERROR: 0:106: error(#143) Undeclared identifier: fc384
ERROR: 0:107: error(#143) Undeclared identifier: fc416
ERROR: 0:108: error(#143) Undeclared identifier: tex1
ERROR: 0:108: error(#202) No matching overloaded function found: texture
ERROR: 0:108: error(#216) Vector field selection out of range "xyz"
ERROR: 0:109: error(#143) Undeclared identifier: fc464
ERROR: 0:112: error(#143) Undeclared identifier: fc528
ERROR: 0:114: error(#143) Undeclared identifier: fc576
ERROR: 0:116: error(#143) Undeclared identifier: fc624
ERROR: 0:117: error(#143) Undeclared identifier: fc656
ERROR: 0:118: error(#143) Undeclared identifier: fc704
ERROR: 0:121: error(#143) Undeclared identifier: fc816
ERROR: 0:121: error(#216) Vector field selection out of range "xyz"
ERROR: 0:121: error(#202) No matching overloaded function found: dot
ERROR: 0:122: error(#143) Undeclared identifier: fc848
ERROR: 0:122: error(#216) Vector field selection out of range "xyz"
ERROR: 0:122: error(#202) No matching overloaded function found: dot
ERROR: 0:123: error(#143) Undeclared identifier: fc880
ERROR: 0:124: error(#143) Undeclared identifier: fc912
ERROR: 0:124: error(#216) Vector field selection out of range "xyz"
ERROR: 0:124: error(#202) No matching overloaded function found: dot
ERROR: 0:125: error(#143) Undeclared identifier: fc944
ERROR: 0:128: error(#143) Undeclared identifier: fc1008
ERROR: 0:130: error(#143) Undeclared identifier: fc1056
ERROR: 0:130: error(#216) Vector field selection out of range "xyz"
ERROR: 0:130: error(#160) Cannot convert from: "float" to: "highp 3-component vector of vec3"
ERROR: 0:131: error(#143) Undeclared identifier: fc1088
ERROR: 0:131: error(#216) Vector field selection out of range "xyz"
ERROR: 0:131: error(#202) No matching overloaded function found: dot
ERROR: 0:132: error(#143) Undeclared identifier: fc1120
ERROR: 0:133: error(#143) Undeclared identifier: fc1152
ERROR: 0:134: error(#143) Undeclared identifier: fc1184
ERROR: 0:135: error(#202) No matching overloaded function found: texture
ERROR: 0:135: error(#216) Vector field selection out of range "xyz"
ERROR: 0:136: error(#143) Undeclared identifier: fc1232
ERROR: 0:139: error(#143) Undeclared identifier: fc1296
ERROR: 0:141: error(#143) Undeclared identifier: fc1344
ERROR: 0:143: error(#143) Undeclared identifier: fc1392
ERROR: 0:144: error(#143) Undeclared identifier: fc1424
ERROR: 0:145: error(#143) Undeclared identifier: fc1472
ERROR: 0:148: error(#143) Undeclared identifier: fc1584
ERROR: 0:148: error(#216) Vector field selection out of range "xyz"
ERROR: 0:148: error(#202) No matching overloaded function found: dot
ERROR: 0:149: error(#143) Undeclared identifier: fc1616
ERROR: 0:149: error(#216) Vector field selection out of range "xyz"
ERROR: 0:149: error(#202) No matching overloaded function found: dot
ERROR: 0:150: error(#143) Undeclared identifier: fc1648
ERROR: 0:151: error(#143) Undeclared identifier: fc1680
ERROR: 0:151: error(#216) Vector field selection out of range "xyz"
ERROR: 0:151: error(#202) No matching overloaded function found: dot
ERROR: 0:152: error(#143) Undeclared identifier: fc1712
ERROR: 0:155: error(#143) Undeclared identifier: fc1776
ERROR: 0:157: error(#143) Undeclared identifier: fc1824
ERROR: 0:157: error(#216) Vector field selection out of range "xyz"
ERROR: 0:157: error(#160) Cannot convert from: "float" to: "highp 3-component vector of vec3"
ERROR: 0:158: error(#143) Undeclared identifier: fc1856
ERROR: 0:158: error(#216) Vector field selection out of range "xyz"
ERROR: 0:158: error(#202) No matching overloaded function found: dot
ERROR: 0:159: error(#143) Undeclared identifier: fc1888
ERROR: 0:160: error(#143) Undeclared identifier: fc1920
ERROR: 0:161: error(#143) Undeclared identifier: fc1952
ERROR: 0:162: error(#202) No matching overloaded function found: texture
ERROR: 0:162: error(#216) Vector field selection out of range "xyz"
ERROR: 0:163: error(#143) Undeclared identifier: fc2000
ERROR: 0:166: error(#143) Undeclared identifier: fc2064
ERROR: 0:168: error(#143) Undeclared identifier: fc2112
ERROR: 0:170: error(#143) Undeclared identifier: fc2160
ERROR: 0:171: error(#143) Undeclared identifier: fc2192
ERROR: 0:172: error(#143) Undeclared identifier: fc2240
ERROR: 0:174: error(#143) Undeclared identifier: fc2336
ERROR: 0:174: error(#216) Vector field selection out of range "xyz"
ERROR: 0:174: error(#160) Cannot convert from: "float" to: "highp 3-component vector of vec3"
ERROR: 0:176: error(#143) Undeclared identifier: fc2384
ERROR: 0:176: error(#216) Vector field selection out of range "xyz"
ERROR: 0:176: error(#202) No matching overloaded function found: dot
ERROR: 0:177: error(#143) Undeclared identifier: fc2416
ERROR: 0:177: error(#216) Vector field selection out of range "xyz"
ERROR: 0:177: error(#202) No matching overloaded function found: dot
ERROR: 0:178: error(#143) Undeclared identifier: fc2448
ERROR: 0:179: error(#143) Undeclared identifier: fc2480
ERROR: 0:180: error(#143) Undeclared identifier: fc2512
ERROR: 0:180: error(#216) Vector field selection out of range "xyz"
ERROR: 0:180: error(#202) No matching overloaded function found: dot
ERROR: 0:181: error(#143) Undeclared identifier: fc2544
ERROR: 0:182: error(#143) Undeclared identifier: fc2576
ERROR: 0:182: error(#216) Vector field selection out of range "xyz"
ERROR: 0:182: error(#202) No matching overloaded function found: dot
ERROR: 0:183: error(#143) Undeclared identifier: fc2608
ERROR: 0:184: error(#143) Undeclared identifier: fc2640
ERROR: 0:185: error(#143) Undeclared identifier: fc2672
ERROR: 0:186: error(#143) Undeclared identifier: fc2704
ERROR: 0:187: error(#143) Undeclared identifier: fc2736
ERROR: 0:190: error(#143) Undeclared identifier: fc2800
ERROR: 0:192: error(#143) Undeclared identifier: fc2848
ERROR: 0:194: error(#143) Undeclared identifier: fc2896
ERROR: 0:194: error(#216) Vector field selection out of range "xyzz"
ERROR: 0:195: error(#143) Undeclared identifier: fc2928
ERROR: error(#273) 117 compilation errors.  No code generated


RSX: ! {rsx::thread} #version 420

uniform sampler2D tex0;
layout(std140, binding = 2) uniform FragmentConstantsBuffer
{
     vec4 fc48;
     vec4 fc80;
     vec4 fc112;
     vec4 fc144;
     vec4 fc176;
     vec4 fc240;
     vec4 fc288;
     vec4 fc320;
     vec4 fc352;
     vec4 fc384;
     vec4 fc416;
     vec4 fc464;
     vec4 fc528;
     vec4 fc576;
     vec4 fc624;
     vec4 fc656;
     vec4 fc704;
     vec4 fc816;
     vec4 fc848;
     vec4 fc880;
     vec4 fc912;
     vec4 fc944;
     vec4 fc1008;
     vec4 fc1056;
     vec4 fc1088;
     vec4 fc1120;
     vec4 fc1152;
     vec4 fc1184;
     vec4 fc1232;
     vec4 fc1296;
     vec4 fc1344;
     vec4 fc1392;
     vec4 fc1424;
     vec4 fc1472;
     vec4 fc1584;
     vec4 fc1616;
     vec4 fc1648;
     vec4 fc1680;
     vec4 fc1712;
     vec4 fc1776;
     vec4 fc1824;
     vec4 fc1856;
     vec4 fc1888;
     vec4 fc1920;
     vec4 fc1952;
     vec4 fc2000;
     vec4 fc2064;
     vec4 fc2112;
     vec4 fc2160;
     vec4 fc2192;
     vec4 fc2240;
     vec4 fc2336;
     vec4 fc2384;
     vec4 fc2416;
     vec4 fc2448;
     vec4 fc2480;
     vec4 fc2512;
     vec4 fc2544;
     vec4 fc2576;
     vec4 fc2608;
     vec4 fc2640;
     vec4 fc2672;
     vec4 fc2704;
     vec4 fc2736;
     vec4 fc2800;
     vec4 fc2848;
     vec4 fc2896;
     vec4 fc2928;
     samplerCube tex1;
    vec4 void_value;
};

in vec4 tc0;
in vec4 tc1;
in vec4 tc2;

out vec4 ocol0;
out vec4 ocol1;
out vec4 ocol2;

void main ()
{
    vec4 r0 = vec4(0., 0., 0., 0.);
    vec4 r1 = vec4(0., 0., 0., 0.);
    vec4 r2 = vec4(0., 0., 0., 0.);
    vec4 r3 = vec4(0., 0., 0., 0.);
    r0.x = vec4(dot(tc0.xyz, tc0.xyz)).x;
    r1.xyz = (tc0 / sqrt(r0).xxxx).xyz;
    r2.w = vec4(dot(r1.xyz, fc48.xyz)).w;
    r0.w = vec4(dot(r1.xyz, fc80.xyz)).w;
    r2.w = max(r2, fc112).w;
    r0.x = (vec4(dot(r1.xyz, fc144.xyz)) * 2.0).x;
    r0.w = max(r0, fc176).w;
    r2.xyz = tc1.xyz;
    r1.w = (vec4(dot(r1.xyz, r2.xyz)) * 2.0).w;
    r0.xyz = (-r1 * r0.xxxx + fc240).xyz;
    r1.xyz = (-r1 * r1.wwww + r2).xyz;
    r2.xyz = fc288.xyz;
    r1.w = vec4(dot(r0.xyz, fc320.xyz)).w;
    r0.xyz = (r2.wwww * fc352).xyz;
    r0.xyz = (r0.wwww * fc384 + r0).xyz;
    r2.w = max(r1, fc416).w;
    r1.xyz = texture(tex1, r1.xyz).xyz;
    r2.xyz = (r0 * fc464 + r2).xyz;
    r2.w = log2(r2.wwww.xxxx).w;
    r0 = texture(tex0, tc2.xy);
    r2.xyz = (r2 + fc528.xxxx).xyz;
    r2.xyz = (r2 * r0).xyz;
    r2.w = (r2 * fc576.xxxx).w;
    r0.x = exp2(r2.wwww.xxxx).x;
    r0.xyz = (r0.xxxx * fc624).xyz;
    r0.xyz = (r0 * fc656 + r2).xyz;
    r0.w = (r0 * fc704.xxxx).w;
    r0.x = vec4(dot(tc0.xyz, tc0.xyz)).x;
    r1.xyz = (tc0 / sqrt(r0).xxxx).xyz;
    r2.w = vec4(dot(r1.xyz, fc816.xyz)).w;
    r0.w = vec4(dot(r1.xyz, fc848.xyz)).w;
    r2.w = max(r2, fc880).w;
    r0.x = (vec4(dot(r1.xyz, fc912.xyz)) * 2.0).x;
    r0.w = max(r0, fc944).w;
    r2.xyz = tc1.xyz;
    r1.w = (vec4(dot(r1.xyz, r2.xyz)) * 2.0).w;
    r0.xyz = (-r1 * r0.xxxx + fc1008).xyz;
    r1.xyz = (-r1 * r1.wwww + r2).xyz;
    r2.xyz = fc1056.xyz;
    r1.w = vec4(dot(r0.xyz, fc1088.xyz)).w;
    r0.xyz = (r2.wwww * fc1120).xyz;
    r0.xyz = (r0.wwww * fc1152 + r0).xyz;
    r2.w = max(r1, fc1184).w;
    r1.xyz = texture(tex1, r1.xyz).xyz;
    r2.xyz = (r0 * fc1232 + r2).xyz;
    r2.w = log2(r2.wwww.xxxx).w;
    r0 = texture(tex0, tc2.xy);
    r2.xyz = (r2 + fc1296.xxxx).xyz;
    r2.xyz = (r2 * r0).xyz;
    r2.w = (r2 * fc1344.xxxx).w;
    r0.x = exp2(r2.wwww.xxxx).x;
    r0.xyz = (r0.xxxx * fc1392).xyz;
    r0.xyz = (r0 * fc1424 + r2).xyz;
    r0.w = (r0 * fc1472.xxxx).w;
    r0.x = vec4(dot(tc0.xyz, tc0.xyz)).x;
    r1.xyz = (tc0 / sqrt(r0).xxxx).xyz;
    r2.w = vec4(dot(r1.xyz, fc1584.xyz)).w;
    r0.w = vec4(dot(r1.xyz, fc1616.xyz)).w;
    r2.w = max(r2, fc1648).w;
    r0.x = (vec4(dot(r1.xyz, fc1680.xyz)) * 2.0).x;
    r0.w = max(r0, fc1712).w;
    r2.xyz = tc1.xyz;
    r1.w = (vec4(dot(r1.xyz, r2.xyz)) * 2.0).w;
    r0.xyz = (-r1 * r0.xxxx + fc1776).xyz;
    r1.xyz = (-r1 * r1.wwww + r2).xyz;
    r2.xyz = fc1824.xyz;
    r1.w = vec4(dot(r0.xyz, fc1856.xyz)).w;
    r0.xyz = (r2.wwww * fc1888).xyz;
    r0.xyz = (r0.wwww * fc1920 + r0).xyz;
    r2.w = max(r1, fc1952).w;
    r1.xyz = texture(tex1, r1.xyz).xyz;
    r2.xyz = (r0 * fc2000 + r2).xyz;
    r2.w = log2(r2.wwww.xxxx).w;
    r0 = texture(tex0, tc2.xy);
    r2.xyz = (r2 + fc2064.xxxx).xyz;
    r2.xyz = (r2 * r0).xyz;
    r2.w = (r2 * fc2112.xxxx).w;
    r0.x = exp2(r2.wwww.xxxx).x;
    r0.xyz = (r0.xxxx * fc2160).xyz;
    r0.xyz = (r0 * fc2192 + r2).xyz;
    r0.w = (r0 * fc2240.xxxx).w;
    r0.x = vec4(dot(tc0.xyz, tc0.xyz)).x;
    r1.xyz = fc2336.xyz;
    r0.xyz = (tc0 / sqrt(r0).xxxx).xyz;
    r0.w = (vec4(dot(r0.xyz, fc2384.xyz)) * 2.0).w;
    r2.w = vec4(dot(r0.xyz, fc2416.xyz)).w;
    r2.xyz = (-r0 * r0.wwww + fc2448).xyz;
    r2.w = max(r2, fc2480).w;
    r1.w = vec4(dot(r0.xyz, fc2512.xyz)).w;
    r3.w = max(r1, fc2544).w;
    r1.w = vec4(dot(r2.xyz, fc2576.xyz)).w;
    r2.xyz = (r3.wwww * fc2608).xyz;
    r2.xyz = (r2.wwww * fc2640 + r2).xyz;
    r1.w = max(r1, fc2672).w;
    r1.xyz = (r2 * fc2704 + r1).xyz;
    r1.xyz = (r1 + fc2736.xxxx).xyz;
    r1.w = log2(r1.wwww.xxxx).w;
    r0 = texture(tex0, tc2.xy);
    r0.w = (r0 * fc2800.xxxx).w;
    r0.xyz = (r1 * r0).xyz;
    r1.w = (r1 * fc2848.xxxx).w;
    r1.x = exp2(r1.wwww.xxxx).x;
    r1.xyw = (r1.xxxx * fc2896.xyzz).xyw;
    r0.xyz = (r1.xywz * fc2928 + r0).xyz;

    ocol0 = r0;
    ocol1 = r2;
    ocol2 = r3;
}

RSX: W {rsx::thread} Add program :
RSX: W {rsx::thread} *** vp id = 6
RSX: W {rsx::thread} *** fp id = 7
G: ! Stopping emulator...
G: ! All threads signaled...
HLE: S {PPU Thread[0x41] (SpursHdlr1)[0x009ca4e0]} Last syscall: 130 (sys_event_queue_receive)
G: ! {PPU Thread[0x2] (Callback Thread)[0x00000000]} Thread aborted
G: ! {SPU[0x3c] Thread (CellSpursKernel2)[0x011ac]} Thread aborted
G: ! {PPU Thread[0x41] (SpursHdlr1)[0x009ca4e0]} Thread aborted
HLE: S {PPU Thread[0x46] (spu_printf_handler)[0x00282030]} Last syscall: 130 (sys_event_queue_receive)
G: ! {SPU[0x3b] Thread (CellSpursKernel1)[0x011a8]} Thread aborted
G: ! {PPU Thread[0x46] (spu_printf_handler)[0x00282030]} Thread aborted
G: ! {PPU Thread[0x26] (Network thread)[0x0065bdd4]} Thread aborted
G: ! {SPU[0x3a] Thread (CellSpursKernel0)[0x00818]} Thread aborted
G: ! {RawSPU[0x20] Thread (0)[0x00288]} Thread aborted
HLE: S {PPU Thread[0x48] (Px::MultiStreamUpdateThread)[0x009d4d34]} Last syscall: 130 (sys_event_queue_receive)
G: E {rsx::thread} Exception: linkage failed: 'Fragment shader(s) were not successfully compiled before glLinkProgram() was called.  Link failed.
'
Please report this to the developers.
G: ! {PPU Thread[0x48] (Px::MultiStreamUpdateThread)[0x009d4d34]} Thread aborted
G: ! {PPU Thread[0x1] (main_thread)[0x0016d744]} Thread aborted
HLE: S {PPU Thread[0x42] (SpursHdlr0)[0x009c836c]} Last syscall: 178 (sys_spu_thread_group_join)
G: ! {PPU Thread[0x42] (SpursHdlr0)[0x009c836c]} Thread aborted
RSX: W {rsx::thread} GLFragmentProgram::Delete(): glDeleteShader(2) avoided
RSX: W {rsx::thread} GLFragmentProgram::Delete(): glDeleteShader(4) avoided
RSX: W {rsx::thread} GLFragmentProgram::Delete(): glDeleteShader(7) avoided
RSX: W {rsx::thread} GLFragmentProgram::Delete(): glDeleteShader(2) avoided
RSX: W {rsx::thread} GLFragmentProgram::Delete(): glDeleteShader(4) avoided
RSX: W {rsx::thread} GLFragmentProgram::Delete(): glDeleteShader(7) avoided
G: ! All threads stopped...
G: ! Objects cleared...
RSX: W GLVertexProgram::Delete(): glDeleteShader(1) avoided
RSX: W GLVertexProgram::Delete(): glDeleteShader(6) avoided
G: ! Stopping emulator...
G: ! Stopping emulator...

Firstly, nobody said there would be needed opengl 4.5 for some functions Smile
Later some error to report dev, but its after closing emu so not sure if relevant.
Reply
#10
(12-20-2015, 03:24 PM)ps0ne Wrote: Firstly, nobody said there would be needed opengl 4.5 for some functions Smile
Later some error to report dev, but its after closing emu so not sure if relevant.

The extension should be available for majority of the video cards, that support OpenGL 4.0 or above.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)