Jump to content

  • Log in with Facebook Log in with Twitter Log In with Google      Sign In   
  • Create Account

Random

Member Since 02 Jul 2012
Offline Last Active Dec 06 2018 12:42 PM
-----

#93954 Cider 8361, DRM Free, works

Posted cluthz on 10 February 2013 - 07:28 PM

Latest Sims 3 wrapper from Origin.
Version 8361, did a quick test with Morrowind, and the game starts just fine.
Haven't tested other stuff.
I did add a few older dlls in the sys32 for Morrowind, and forgot to take them out, should not matter tho.

http://www.mediafire...uau7b8hjoe7g5qs


#89977 Wine ATiFix Engine

Posted thanoulas on 15 October 2012 - 11:18 PM

Here's the patch for creating an ATiFix engine.
This will help balance the speed-to-glitches ratio that every modern game has when playing on an ATi/AMD GPU Mac.

A little background detail, and findings during our tests are here
http://portingteam.c...i-shader-issue/

Get a pre-built engine from here:
http://www.mediafire...qwvj8q2ded9namu

or build one yourself:
(NOTE: Avoid using 1.5.14 & 1.5.15 wine, it looks like it's crashing the O/S)

NEW PATCH, AVOIDS RESERVING 12 SHADERS FOR DRIVER USE WHEN THE TOTAL SHADERS ARE SET TO <270
WILL POSSIBLY HELP WITH CARDS WHICH HAVE 256 AVAILABLE FLOATS:

Link:
http://www.mediafire...6af01014wwguog4

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 36aafee..d432d90 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -767,13 +767,35 @@ static BOOL match_fglrx(const struct wined3d_gl_info *gl_info, const char *gl_re
	 return gl_vendor == GL_VENDOR_FGLRX;
}

+static void quirk_arb_constants(struct wined3d_gl_info *gl_info)
+{
+	/* MacOS always reports 4096 MAX_VERTEX_UNIFORM_COMPONENTS, which means
+	 * 1024 VS_FLOAT_CONSTANTS. This is fine with nVidia, but the ATi drivers
+	 * in OS X use some vertex shaders for internal calculations.
+	 * This number is never subtracted from the available ones, and OS X always
+	 * advertises 1024, so when an application tries to access these constants
+	 * they have incorrect values. This hack lets the user report a fixed number
+	 */
+	if (wined3d_settings.override_vertex_constants) {
+		FIXME("Using Constants Override\n");
+		gl_info->limits.glsl_vs_float_constants = wined3d_settings.vertex_constants_number;
+		FIXME("Constants Number is now set at %i\n", wined3d_settings.vertex_constants_number);
+	}
+}
+
static void quirk_apple_glsl_constants(struct wined3d_gl_info *gl_info)
{
+	quirk_arb_constants(gl_info);
	 /* MacOS needs uniforms for relative addressing offsets. This can accumulate to quite a few uniforms.
	  * Beyond that the general uniform isn't optimal, so reserve a number of uniforms. 12 vec4's should
	  * allow 48 different offsets or other helper immediate values. */
-	TRACE("Reserving 12 GLSL constants for compiler private use.\n");
-	gl_info->reserved_glsl_constants = max(gl_info->reserved_glsl_constants, 12);
+	
+	// Dont reserve anything if we're using the shader hack and the available shaders are less than 270
+	if (!wined3d_settings.override_vertex_constants &&
+		wined3d_settings.vertex_constants_number > 269) {
+		TRACE("Reserving 12 GLSL constants for compiler private use.\n");
+		gl_info->reserved_glsl_constants = max(gl_info->reserved_glsl_constants, 12);
+	}
}

static void quirk_amd_dx9(struct wined3d_gl_info *gl_info)
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
index 2247e9c..9435ee4 100644
--- a/dlls/wined3d/wined3d_main.c
+++ b/dlls/wined3d/wined3d_main.c
@@ -84,6 +84,8 @@ struct wined3d_settings wined3d_settings =
	 TRUE,		   /* Multisampling enabled by default. */
	 FALSE,		  /* No strict draw ordering. */
	 TRUE,		   /* Don't try to render onscreen by default. */
+	FALSE,		  /* Override vertex constants? */
+	1024,		   /* Number of vertex shaders to use */
};

/* Do not call while under the GL lock. */
@@ -323,6 +325,21 @@ static BOOL wined3d_dll_init(HINSTANCE hInstDLL)
			 TRACE("Not always rendering backbuffers offscreen.\n");
			 wined3d_settings.always_offscreen = FALSE;
		 }
+		if (!get_config_key(hkey, appkey, "OverrideVertexShaders", buffer, size)
+				&& !strcmp(buffer,"enabled"))
+		{
+			TRACE("Override Vertex Shader Constants\n");
+			wined3d_settings.override_vertex_constants = TRUE;
+		}
+		if (!get_config_key(hkey, appkey, "VertexShaderConstants", buffer, size))
+		{
+			int TmpVertexShaderConstants = atoi(buffer);
+			if (TmpVertexShaderConstants > 0)
+			{
+				wined3d_settings.vertex_constants_number = TmpVertexShaderConstants;
+				TRACE("Use %i Vertex Shader Constants\n", TmpVertexShaderConstants);
+			}
+		}
	 }
	 if (wined3d_settings.vs_mode == VS_HW)
		 TRACE("Allow HW vertex shaders\n");
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 5ea23b4..0e79f5d 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -281,6 +281,8 @@ struct wined3d_settings
	 int allow_multisampling;
	 BOOL strict_draw_ordering;
	 BOOL always_offscreen;
+	BOOL override_vertex_constants;
+	int vertex_constants_number;
};

extern struct wined3d_settings wined3d_settings DECLSPEC_HIDDEN;

Moving on to the patch:

Spoiler
if applying the patch fails, download it from:
http://www.mediafire...aef4vgk8drdp7nc

After you create an engine with the patch, and create a wrapper with it, you will still have to enable the hack within wine's registry.
Open regedit and go to HKEY_CURRENT_USER\Software\Wine\Direct3D

Create a new "String Value" named "OverrideVertexShaders", and set its value to "enabled"
Create another "String Value" named "VertexShaderConstants", and set the number of constants to use.
For ATi's I'd suggest values between 450 - 1000, but of course feel free to experiment.
The lower you go, the faster the framerate, but you'll get more graphical glitches
The higher you go, the less glitches, but slower framerate.

Gool luck and welcome back those ATi users!


#88775 Cider 8467

Posted Kama.Stein on 18 September 2012 - 10:12 PM

Well, when a mommy cider and a daddy cider really really love each other they get together and something magical happens....

No wait.... I meant.. um.. transgaming. :P


#87559 [ot] Buy Wineskin?!?!

Posted doh123 on 17 August 2012 - 05:41 AM

you weirdo


#75204 [Wine 1.5.5] RawMac2 Engine

Posted thanoulas on 14 March 2012 - 03:41 PM

UPDATED: 1 June 2012 - RawMac2 Engine
- New patch applied for Raw3.patch so the mouse warps around the x axis
- Should increase compatibility with games that were not working
- Based on latest GIT branch (post 1.5.5 tag)
- Now supports windowed mode (Tested with virtual desktop, as long as the window has focus it should warp)
- New name for the engine! RawMac2

UPDATED: 17 March 2012 - New Wine 1.5
- Wine 1.5 Development is now available - Added new Links

Initial Public Release:
This is the latest wine from the trunk with:
Raw3.patch (enables mouse cursor for games that use Raw input)
RawWarpPatch (my change to the code because raw patch had limited mouse mouvement, it now warps the cursor around the x axis)
ATi Patch - Fixes all GLSL Shader problems (on SL / Lion at least)
Built --without-xinput2 because there is no proper support of xinput2 in osx and just breaks the cursor

plus this one has a partial implementation of wbem proxy, many games depend on that (i.e. NFS Hot Pursuit)

Wine 1.5.5 - RawMac2
Download from Mediafire
Download from Turbobit
Download SOURCE from Mediafire (1.5.7 tag)

Patch source:
--- a/dlls/user32/message.c
+++ b/dlls/user32/message.c
@@ -2366,9 +2366,11 @@
	 GUITHREADINFO info;
	 MOUSEHOOKSTRUCT hook;
	 BOOL eatMsg;
+	INT max_x;

	 /* find the window to dispatch this mouse message to */

+	max_x = GetSystemMetrics( SM_CXSCREEN );
	 info.cbSize = sizeof(info);
	 GetGUIThreadInfo( GetCurrentThreadId(), &info );
	 if (info.hwndCapture)
@@ -2379,6 +2381,19 @@
	 else
	 {
		 msg->hwnd = WINPOS_WindowFromPoint( msg->hwnd, msg->pt, &hittest );
+		// Risen 2 Patch
+		if (msg->pt.x < 10) {
+			USER_Driver->pSetCursorPos( (max_x - 11), msg->pt.y );
+			TRACE("THANOS: Hitting Left Edge:\n");
+			TRACE("Current X: %d\n", msg->pt.x);
+			TRACE("Current Y: %d\n", msg->pt.y);
+		}
+		else if (msg->pt.x > (max_x - 10)) {
+			USER_Driver->pSetCursorPos( 11, msg->pt.y );
+			TRACE("THANOS: Hitting Right Edge:\n");
+			TRACE("Current X: %d\n", msg->pt.x);
+			TRACE("Current Y: %d\n", msg->pt.y);
+		}
	 }

	 if (!msg->hwnd || !WIN_IsCurrentThread( msg->hwnd ))

WINE VERSION 1.4

WINE VERSION 1.5

WINE VERSION 1.5 - WITH ATI SHADER FIX (THIS IS FULLY COMPATIBLE WITH nVidia / Intel)

Happy porting!