View unanswered posts | View active topics
|
Page 14 of 62
|
[ 919 posts ] |
|
| Author |
Message |
|
Rhiyo
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Saturday, 30 Mar 2013, 06:58 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Wednesday, 22 Apr 2009, 06:48 Posts: 170
|
|
Hey, is this still a thing? Has there been any developments with this or something quite close to this?
|
|
| Top |
|
 |
|
virusek
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Monday, 22 Apr 2013, 17:56 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Monday, 04 Aug 2008, 20:17 Posts: 195 Location: Imaginationland
|
|
@JorjVirus69
Your wrapper need a more proper login. Some games may not login because events are not send in correct order, take a look in XBOX360 SDK help file. xlive is not documented at all on Windows platform, but XBOX360 have same API! Also XOVERLAPPED structure handling is a problem (Asynchronous IO). NOTE: LocalAlloc can cause some troubles, better use HeapAlloc. I also attached my old modified xliveless source, it may help because I found many functions prototypes by reversing original xlive.dll and by use of XBOX 360 SDK.
| Attachments: |
File comment: my old, modified xliveless source
xliveless.7z [46.36 KiB]
Downloaded 105 times
|
|
|
| Top |
|
 |
|
Royalgamer06
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Monday, 22 Apr 2013, 18:08 |
|
| I live here Три раза сломал клаву :) |
 |
Joined: Sunday, 25 Sep 2011, 21:50 Posts: 5355 Location: 0100 0011 0101 0011 0101 0010 0100 1001 0100 1110 0101 0010 0101 0101
|
virusek wrote: @JorjVirus69
Your wrapper need a more proper login. Some games may not login because events are not send in correct order, take a look in XBOX360 SDK help file. xlive is not documented at all on Windows platform, but XBOX360 have same API! Also XOVERLAPPED structure handling is a problem (Asynchronous IO). NOTE: LocalAlloc can cause some troubles, better use HeapAlloc. I also attached my old modified xliveless source, it may help because I found many functions prototypes by reversing original xlive.dll and by use of XBOX 360 SDK. WB!!
|
|
| Top |
|
 |
|
virusek
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Monday, 22 Apr 2013, 18:35 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Monday, 04 Aug 2008, 20:17 Posts: 195 Location: Imaginationland
|
|
Hym, seems that login is crashing Bioshock 2... It crashes after sixth XUserGetSigninState call.
EDIT: Bioshock 2 need a proper implemented XUserReadProfileSettingsByXuid, also it calls xlive export #5372 (which purpose is unknown for me).
Last edited by virusek on Monday, 22 Apr 2013, 19:24, edited 1 time in total.
|
|
| Top |
|
 |
|
machine4578
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Monday, 22 Apr 2013, 19:23 |
|
| Moderator |
 |
Joined: Friday, 06 Jul 2012, 07:00 Posts: 9961 Location: Faster Than Scene
|
virusek wrote: Hym, seems that login is crashing Bioshock 2... It crashes after sixth XUserGetSigninState call. are you able to fix it by any chance?
_________________ 
|
|
| Top |
|
 |
|
virusek
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Monday, 22 Apr 2013, 19:38 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Monday, 04 Aug 2008, 20:17 Posts: 195 Location: Imaginationland
|
Read my edit. Creating emulator for one game is much easier. Creating emulator for all games is complicated task, because it must behave exactly as real XLive, and Xlive emulation is hard - it use event system (sign-in is event based) and asynchronous I/O. PS: XUserReadProfileSettingsByXuid prototype should look like this, included needed structures: -
- typedef struct _XOVERLAPPED XOVERLAPPED, *PXOVERLAPPED;
-
- typedef
- VOID
- (WINAPI *PXOVERLAPPED_COMPLETION_ROUTINE)(
- __in DWORD dwErrorCode,
- __in DWORD dwNumberOfBytesTransfered,
- __inout PXOVERLAPPED pOverlapped
- );
-
- typedef struct _XOVERLAPPED {
- ULONG_PTR InternalLow;
- ULONG_PTR InternalHigh;
- ULONG_PTR InternalContext;
- HANDLE hEvent;
- PXOVERLAPPED_COMPLETION_ROUTINE pCompletionRoutine;
- DWORD_PTR dwCompletionContext;
- DWORD dwExtendedError;
- } XOVERLAPPED, *PXOVERLAPPED;
-
- typedef enum _XUSER_PROFILE_SOURCE
- {
- XSOURCE_NO_VALUE = 0,
- XSOURCE_DEFAULT,
- XSOURCE_TITLE,
- XSOURCE_PERMISSION_DENIED
- } XUSER_PROFILE_SOURCE;
-
- typedef struct {
- BYTE type;
- union {
- LONG nData;
- LONGLONG i64Data;
- double dblData;
- struct {
- DWORD cbData;
- LPWSTR pwszData;
- }string;
- float fData;
- struct {
- DWORD cbData;
- PBYTE pbData;
- }binary;
- FILETIME ftData;
- };
- } XUSER_DATA, *PXUSER_DATA;
-
-
- typedef struct _XUSER_PROFILE_SETTING {
- XUSER_PROFILE_SOURCE source;
- union {
- DWORD dwUserIndex;
- XUID xuid;
- }user;
- DWORD dwSettingId;
- XUSER_DATA data;
- } XUSER_PROFILE_SETTING, *PXUSER_PROFILE_SETTING;
-
- typedef struct _XUSER_READ_PROFILE_SETTING_RESULT {
- DWORD dwSettingsLen;
- XUSER_PROFILE_SETTING *pSettings;
- } XUSER_READ_PROFILE_SETTING_RESULT, *PXUSER_READ_PROFILE_SETTING_RESULT;
-
- DWORD WINAPI XUserReadProfileSettingsByXuid(
- DWORD dwTitleId,
- DWORD dwUserIndexRequester,
- DWORD dwNumFor,
- const XUID *pxuidFor,
- DWORD dwNumSettingIds,
- const DWORD *pdwSettingIds,
- DWORD *pcbResults,
- PXUSER_READ_PROFILE_SETTING_RESULT pResults,
- PXOVERLAPPED pXOverlapped
- );
-
|
|
| Top |
|
 |
|
prudislav
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Monday, 22 Apr 2013, 23:07 |
|
| I live here Три раза сломал клаву :) |
 |
Joined: Tuesday, 24 Feb 2009, 18:42 Posts: 4772 Location: CZ
|
|
would be nice to be able to load Bioshock with DLC properly (ahab's way isnt ideal)
|
|
| Top |
|
 |
|
urbanman2004
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Saturday, 27 Apr 2013, 05:05 |
|
| Forum ghost Местное привидение |
 |
Joined: Saturday, 27 Apr 2013, 04:50 Posts: 408 Location: Rock Town
|
|
JorjVirus69, I want to personally thank you for this solution you created. You saved me weeks of frustration caused by the inability of GFWL to save my game progress in BAC GOTY on Windows 8. That's the only game I have had trouble with trying to find a workaround, and it was so simple. Thanks man, you're awesome. Side note: How far along are you with the development of XLive's next update? No rush, just thought I'd ask.
|
|
| Top |
|
 |
|
JorjVirus69
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Tuesday, 30 Apr 2013, 13:37 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Tuesday, 23 Dec 2008, 19:26 Posts: 187
|
|
No, the project is not dead and it will not die as i need it myself too. v2 is in the works, about 30 % complete, however that means i will not make any fixes or patches until it is complete. Also, this is not my primary project at the moment, so it will take some time until you hear more of this.
|
|
| Top |
|
 |
|
prudislav
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Tuesday, 30 Apr 2013, 14:33 |
|
| I live here Три раза сломал клаву :) |
 |
Joined: Tuesday, 24 Feb 2009, 18:42 Posts: 4772 Location: CZ
|
JorjVirus69 wrote: No, the project is not dead and it will not die as i need it myself too. v2 is in the works, about 30 % complete, however that means i will not make any fixes or patches until it is complete. Also, this is not my primary project at the moment, so it will take some time until you hear more of this. we can wait  glad to see you after a while
|
|
| Top |
|
 |
|
MerolaC
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Tuesday, 30 Apr 2013, 17:42 |
|
| Junior Mod |
 |
Joined: Monday, 06 Jun 2005, 01:28 Posts: 1463 Location: Rin!
|
Oh man, that is so great! Thanks Jorj for the heads up! Can't wait! 
_________________ Ok, something "useful" here: MEGA.co.nz - My Updates folder.cs.rin.ru Watch_Dogs - 3DMGame saves to Reloaded tutorial
|
|
| Top |
|
 |
|
virusek
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Wednesday, 01 May 2013, 21:00 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Monday, 04 Aug 2008, 20:17 Posts: 195 Location: Imaginationland
|
|
@JorjVirus69
You can use my modified xliveless source for function like XShowKeyboardUI (required by F1 2011 for user name and save bolid setting), and XNotifyGetNext (events are needed for some games to proper login). Attached my current work (Bioshock 2 works now, but DLC is not supported yet).
PS: Can you tell me some spec about XEnumerete? Because structure returned by this function seems to be different than on XBOX360. PS2: You created fake HANDLE values like 0xDEADCODE, but this will throw exception when game call XCloseHandle/CloseHande on such handle. I'm overcome this by creating fake, not used mutex, it can be safe closed by CloseHandle. PS3: Bioshock 2 with yours emulator crash at XEnumerete, it is a null pointer somewhere in it.
Last edited by virusek on Wednesday, 01 May 2013, 22:07, edited 1 time in total.
|
|
| Top |
|
 |
|
JorjVirus69
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Wednesday, 01 May 2013, 22:05 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Tuesday, 23 Dec 2008, 19:26 Posts: 187
|
virusek wrote: You can use my modified xliveless source for function like XShowKeyboardUI and XNotifyGetNext
Already implemented properly in v2, XShow actually work as intended: they display an overlay. virusek wrote: Can you tell me some spec about XEnumerate? Because structure returned by this function seems to be different than on XBOX360.
Can you be a little more specific ? virusek wrote: You created fake HANDLE values like 0xDEADCODE, but this will throw exception when game call XCloseHandle/CloseHande on such handle. I'm overcome this by creating fake, not used mutex, it can be safe closed by CloseHandle.
At first i didn't need handles, and some code from those times has survived. v2 has a dedicated handle table now. virusek wrote: Bioshock 2 with yours emulator crash at XEnumerate, it is a null pointer somewhere in it. Probably due to a previous call to #5372 (XMarketplaceCreateOfferEnumerator) as you pointed out earlier. PS: I can't open your archive (using 7-zip here).
|
|
| Top |
|
 |
|
virusek
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Wednesday, 01 May 2013, 22:11 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Monday, 04 Aug 2008, 20:17 Posts: 195 Location: Imaginationland
|
Archive should work now, I used WinRAR 5.0 b2 to pack it and it seems it defaults now to new RAR5 format... PS: Bioshock 2 calls also #5356: - 29/04/2013 14:38:30.413 XLiveInitializeEx
- 29/04/2013 14:38:30.417 XOnlineStartup
- 29/04/2013 14:38:37.310 XLiveOnCreateDevice
- 29/04/2013 14:38:37.314 XNotifyCreateListener (0x00000000000000ef)
- 29/04/2013 14:38:37.319 XLiveOnResetDevice
- 29/04/2013 14:38:38.857 XLiveOnCreateDevice
- 29/04/2013 14:38:38.862 XLiveOnResetDevice
- 29/04/2013 14:38:38.893 XUserSetContext
- 29/04/2013 14:38:38.896 XUserGetSigninInfo(0x00000000,0x00000002,0x0038be14)
- 29/04/2013 14:38:38.903 XLiveContentCreateEnumerator
- 29/04/2013 14:38:38.908 XEnumerate 1182BF70, *censored AppID*, 00000000
- 29/04/2013 14:38:38.913 XLivePBufferAllocate (28)
- 29/04/2013 14:38:38.917 XLiveContentCreateAccessHandle
- 29/04/2013 14:38:38.921 XLivePBufferGetByteArray
- 29/04/2013 14:38:38.925 XLiveContentGetPath
- 29/04/2013 14:38:38.928 XLivePBufferFree
- 29/04/2013 14:38:38.931 XLiveLess_5356
- 29/04/2013 14:38:38.934 XLiveLess_5356
- 29/04/2013 14:38:38.937 XLiveContentGetPath
- 29/04/2013 14:38:38.941 XEnumerate 1182BF70, *censored AppID*, 00000000
- 29/04/2013 14:38:38.945 XCloseHandle
- 29/04/2013 14:38:38.948 XLiveLess_5372
- 29/04/2013 14:38:38.950 XEnumerate 0E9C0000, 3717544, 00000000
- 29/04/2013 14:38:38.959 XUserGetSigninInfo(0x00000000,0x00000002,0x0038be08)
- 29/04/2013 14:38:38.985 XUserGetSigninInfo(0x00000000,0x00000002,0x0038be90)
- 29/04/2013 14:38:38.993 XUserGetSigninInfo(0x00000000,0x00000001,0x0038c2e8)
- 29/04/2013 14:38:38.999 XLiveCreateProtectedDataContext
|
|
| Top |
|
 |
|
JorjVirus69
|
Post subject: Re: XLive (aka GFWL) emulator Posted: Wednesday, 01 May 2013, 22:38 |
|
| Advanced forumer Завсегдатай |
 |
Joined: Tuesday, 23 Dec 2008, 19:26 Posts: 187
|
#5356 is a dlc related function: -
- HRESULT WINAPI XContent_5356( DWORD MustBeZero, XCONTENT_DATA *XContentData, WCHAR *Buffer, DWORD *Length)
-
This function and #5357 are the cause of many dlc related crashes as they are unimplemented. Also XCONTENT_DATA is not the same from 360, it's something like this: -
- typedef struct _XCONTENT_DATA
- {
- DWORD Unknown1; // (1)
- DWORD Unknown2; // != NULL
- DWORD Unknown3; // Content type ? (2)
- BYTE ContentId[20];
- } XCONTENT_DATA;
-
|
|
| Top |
|
 |
Who is online |
Users browsing this forum: No registered users and 7 guests |
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|