CS.RIN.RU - Steam Underground Community
http://cs.rin.ru/forum/

[REL] steamemu for HL2:E1
http://cs.rin.ru/forum/viewtopic.php?f=31&t=35450
Page 3 of 9

Author:  Sillium23 [ Thursday, 15 Jun 2006, 22:32 ]
Post subject:  Re: [BETA REL] steamemu for HL2:E1

bug.meh.not wrote:
Sillium23 wrote:
Is it possible to patch d4rk´s emu too? Cause this emu avoids the filesystem_steam.dll-error??

Thanks man for your work!!


Could you PM me d4rk's emulator? I think I understand how to do this patch, I can patch it and send it back to you.


You can download the emu in the Thraed abput filesystem_steam.dll-error in my Sig!

Problem i had with patching is, that the steam.dll is packed and i didn´t find the right unpacker.

Good luck! Patched dll would be great!

Author:  hCUPa [ Tuesday, 11 Jul 2006, 13:31 ]
Post subject: 

I know this topic is outdated and quite dead, but but...
It would be nice if you post here all custom fixes you made to 3.02 emu in order to make it work with HL:E1 and other games (steam account I used is no longer working, so I cant conveniently get gcfs to test it out myself).

One fix was suggested by MetalliC earlier - implement SteamIsSubscribed function, but I'm sure there are many others.

Be technical, be sharp, be correct. Thanks in advance.

-- hCUPa. retired one.

Author:  RessourectoR [ Tuesday, 11 Jul 2006, 14:59 ]
Post subject: 

hCUPa posts.. :o

:D


"Welcome back"

Author:  bug.meh.not [ Tuesday, 11 Jul 2006, 22:07 ]
Post subject: 

If you try to run Garry's Mod 9.0.4b with 3.02b, you'll get a "Extra App ID set to 320, but no SteamAppID" error.

In order to get it to run w/o errors, either the server.dll file could be patched like so:

Garry's Mod 9.0.4b
gmod\bin\server.dll

server.dll - MD5 = 81B165F5836FDF0FBF239B04EAE03699
0x004023B0 - 68 40 01 00 00 FF 90 E8 00 00 00 = 90 90 90 90 90 90 90 90 90 90 90
0x004023C3 - 68 F0 00 00 00 FF 92 E8 00 00 00 = 90 90 90 90 90 90 90 90 90 90 90
fixed server.dll - MD5 = 12707FE55F3E75F5BBA37690AA573595


.text:22402382 push    1
.text:22402384 push    offset aGame
.text:22402389 push    offset aHl2mp
.text:2240238E call    dword ptr [eax+3Ch]
.text:22402391 mov     ecx, dword_22619EE0
.text:22402397 mov     edx, [ecx]
.text:22402399 push    1
.text:2240239B push    offset aGame
.text:224023A0 push    offset aCstrike
.text:224023A5 call    dword ptr [edx+3Ch]
.text:224023A8 mov     ecx, dword_22619EE0
.text:224023AE mov     eax, [ecx]
.text:224023B0 push    140h                 ; 320, HL2DM's App ID (NOP)
.text:224023B5 call    dword ptr [eax+0E8h] ; GCF loader call (NOP)
.text:224023BB mov     ecx, dword_22619EE0
.text:224023C1 mov     edx, [ecx]
.text:224023C3 push    0F0h                 ; 240, CSS's App ID (NOP)
.text:224023C8 call    dword ptr [edx+0E8h] ; GCF loader call (NOP)


Or like how cIntX did it:

cIntX wrote:
Yes i modified it a bit, after i talked to bug.meh.not i had the idea to
modifiy it that it Run the Mods without Cracking the Server.dll this will
allow you to play every mod without any Cracks just place the emu
in your bin dir or hl2 root dir and it will work

Note: Its not able to mount GCF's in this modification

SteamEmu 3.02b Modified:
http://rapidshare.de/files/15288561/ste ... X.rar.html

SteamEmu 2.63 Modified:
http://rapidshare.de/files/15288531/ste ... X.rar.html

Enjoy! :)


Mirror for cIntX's modified 3.02b emu

Steamemu 3.02b
steam.dll

steam.dll - MD5 = 4817CF42334602780B36767792780C25
0x00006160 - 56 8B 74 24 0C = B0 01 C3 90 90
0x00007180 - 55 8B EC = B0 01 C3
cIntX's steam.dll - MD5 = C918AC2F2328EE1FC6871D99F4AF7F25

Author:  hCUPa [ Wednesday, 12 Jul 2006, 16:47 ]
Post subject: 

bug.meh.not
Thank you for feedback. In fact its not emulator problem, but rather launcher problem. Original steam launcher passes SteamAppId (when extra app id is used) through enviroment variable. If you could tell me what value does it set there for Garry's mod I can test it locally.
--- Filesystem_Steam.dll ---
.text:10010846                 lea     edx, [esp+134h]
.text:1001084D                 push    edx
.text:1001084E                 push    offset Name     ; "steamappid"
.text:10010853                 call    ds:GetEnvironmentVariableA
.text:10010859                 test    eax, eax
.text:1001085B                 jz      short loc_10010866
.text:1001085D                 lea     ebp, [esp+130h]
.text:10010864                 jmp     short loc_10010875


_MetalliC_
Added support for SteamIsSubscribed. Your patch seems weird though. Stack balancing is too big (there's just 4 arguments) and return value is zero for success (like for most steam funcs).


Doing something with nearly no ability to test it out aint fun. Will look into that more after actually getting HL2:E1.

Author:  SASiO [ Wednesday, 12 Jul 2006, 20:47 ]
Post subject: 

i dont know if this will be usefull but in MetalliC patched emu sometimes in any game error apear in adresss : 00011FCA. And sometime you can continue play game without clicking Close button at error.

Author:  c*Int/X [ Thursday, 13 Jul 2006, 01:20 ]
Post subject: 

hCUPa is there any chance we get ur emulator src would be good so
we can update it since u are no longer here..

Author:  .cue [ Thursday, 13 Jul 2006, 08:16 ]
Post subject: 

yeah i agree.. id love to check out the src to your emu
or even the steam loader you made..

but it would be brutaly stupid to post the shit publicly !

im working on a project with another persons working emu
and my goal is to have the steam gui load offline (with out downloading games) but im stuck having to figure out
how steam starts up and what it loads etc

your old steam.exe loader source would be interesting
even if it wouldnt work for the current steam platform anymore

If you can throw me an advice on making a steam loader
with my my own emulated steam.dll i would be extremely happy !
pm me if ya wanna help :)

oh and i will not be posting the project anywhere at any time. (sry people private)

oh yeah and i already have it loading with my own mfc .exe
or your old loader anyways so.. ;)

come and chat with us cupaman.. irc://irc.emporio.kicks-ass.net/1.6
you too cinty ;)

Author:  decayed.cell [ Thursday, 13 Jul 2006, 14:31 ]
Post subject: 

'cinty' lol...

Author:  bug.meh.not [ Thursday, 13 Jul 2006, 20:39 ]
Post subject: 

I ran a few tests to see steamappid's behavior under different launching conditions. Here's what an API monitor tells me, sans irrelevant API calls.

Using Steam: (-applaunch 220 -game "C:\Program Files\Steam\SteamApps\SourceMods\gmod9")
Process 0x2cc (steam.exe) launched by 0x5dc (explorer.exe) successfully hooked   
               
SetEnvironmentVariableA(PSTR:0x1465588:"SteamAppId", PSTR:0x1465593:"220")
 Return value:     0x00000001
 Caller address:   0x200c9b6a
 Relative address: Steam.dll + 0xc9b6a
 Process ID:       0x000002cc
 Module name:      kernel32.dll
 Caller full path: C:\Program Files\Steam\Steam.dll

SetEnvironmentVariableA(PSTR:0x146ac48:"SteamAppId", PSTR:0x0:?)
 Return value:     0x00000001
 Caller address:   0x200c9b6a
 Relative address: Steam.dll + 0xc9b6a
 Process ID:       0x000002cc
 Module name:      kernel32.dll
 Caller full path: C:\Program Files\Steam\Steam.dll

Process 0x718 (hl2.exe) launched by 0x2cc (steam.exe) successfully hooked                  

SetEnvironmentVariableA(PSTR:0x1770060:"SteamAppId", PSTR:0x177006b:"220")
 Return value:     0x00000001
 Caller address:   0x10012711
 Relative address: launcher.dll + 0x12711
 Process ID:       0x00000718
 Module name:      kernel32.dll
 Caller full path: c:\program files\steam\steamapps\Username\half-life 2\bin\launcher.dll

SetEnvironmentVariableA(PSTR:0x1770080:"SteamAppId", PSTR:0x177008b:"220")
 Return value:     0x00000001
 Caller address:   0x10012711
 Relative address: launcher.dll + 0x12711
 Process ID:       0x00000718
 Module name:      kernel32.dll
 Caller full path: c:\program files\steam\steamapps\Username\half-life 2\bin\launcher.dll

GetEnvironmentVariableA(PSTR:0x4ca010:"steamappid", PSTR:0x12c830:"", DWORD:128)
 Return value:     0x00000003
 Caller address:   0x004b0854
 Relative address: filesystem_steam.dll + 0x10854
 Process ID:       0x00000718
 Module name:      kernel32.dll
 Caller full path: c:\program files\steam\steamapps\Username\half-life 2\bin\filesystem_steam.dll

GetEnvironmentVariableA(PSTR:0x4ca010:"steamappid", PSTR:0x12c830:"220", DWORD:128)
 Return value:     0x00000003
 Caller address:   0x004b0854
 Relative address: filesystem_steam.dll + 0x10854
 Process ID:       0x00000718
 Module name:      kernel32.dll
 Caller full path: c:\program files\steam\steamapps\Username\half-life 2\bin\filesystem_steam.dll


Manual launch while running Steam (hl2.exe -steam -game "C:\Program Files\Steam\SteamApps\SourceMods\gmod9")
Process 0x6f0 (steam.exe) launched by 0x5dc (explorer.exe) successfully hooked   
               
Process 0x68c (hl2.exe) launched by 0xac (cmd.exe) successfully hooked   
               
GetEnvironmentVariableA(PSTR:0x44a010:"steamappid", PSTR:0x12c830:"", DWORD:128)
 Return value:     0x00000000
 Caller address:   0x00430854
 Relative address: filesystem_steam.dll + 0x10854
 Process ID:       0x0000068c
 Module name:      kernel32.dll
 Caller full path: C:\Program Files\Steam\SteamApps\Username\half-life 2\bin\filesystem_steam.dll

("Extra App ID set to 320, but no SteamAppId" error)

Unload of application 0x68c (hl2.exe)


Using 3.02b, Steam not running:
Process 0x26c (hl2.exe) launched by 0xac (cmd.exe) successfully hooked

GetEnvironmentVariableA(PSTR:0x44a010:"steamappid", PSTR:0x12c830:"", DWORD:128)
 Return value:     0x00000000
 Caller address:   0x00430854
 Relative address: filesystem_steam.dll + 0x10854
 Process ID:       0x0000026c
 Module name:      kernel32.dll
 Caller full path: C:\Program Files\Steam\SteamApps\Username\half-life 2\bin\filesystem_steam.dll

("Extra App ID set to 320, but no SteamAppId" error)

(hl2.exe unloads)


Lots more stuff going on during Steam's launch procedure, setting steamappid to 220 (two, three, four times?)

Author:  c*Int/X [ Friday, 14 Jul 2006, 00:18 ]
Post subject: 

pvnownsjoo wrote:
yeah i agree.. id love to check out the src to your emu
or even the steam loader you made..

but it would be brutaly stupid to post the shit publicly !

im working on a project with another persons working emu
and my goal is to have the steam gui load offline (with out downloading games) but im stuck having to figure out
how steam starts up and what it loads etc

your old steam.exe loader source would be interesting
even if it wouldnt work for the current steam platform anymore

If you can throw me an advice on making a steam loader
with my my own emulated steam.dll i would be extremely happy !
pm me if ya wanna help :)

oh and i will not be posting the project anywhere at any time. (sry people private)

oh yeah and i already have it loading with my own mfc .exe
or your old loader anyways so.. ;)

come and chat with us cupaman.. irc://irc.emporio.kicks-ass.net/1.6
you too cinty ;)


would be stupid if he post the src public idiot. I meant to keep it private who have knowledge with the whole steam system

and bug.meh.not the errors comes from SteamIsLoggedIn i think its set there the app id's thats why steamemu dont do it

Author:  hCUPa [ Friday, 14 Jul 2006, 00:24 ]
Post subject: 

Quote:
would be stupid if he post the src public idiot. I meant to keep it private who have knowledge with the whole steam system

Src is not going anywhere in near future. Burlex and friends are coding other emulator, maybe they can turn this into opensource project? :-)

Quote:
and bug.meh.not the errors comes from SteamIsLoggedIn i think its set there the app id's thats why steamemu dont do it

Dont think so. SteamIsLoggedIn is emulated, its just environment variable that is unset which leads to abovementioned error message. bug.meh.not showed that steam launcher sets this variable. So either emu should do it itself or let custom launchers do it.

Author:  bug.meh.not [ Friday, 14 Jul 2006, 07:23 ]
Post subject: 

Here's a little proof-of-concept for anyone that cares (attachment). Place it in your half-life 2 game directory and run it, or configure crack360.ini so that it'll run. It sets the steamappid environment variable then launches gmod.

Attachments:
gmod9.zip [684.29 KiB]
Downloaded 118 times

Author:  esx [ Friday, 14 Jul 2006, 09:10 ]
Post subject: 

hCUPa wrote:
Quote:
would be stupid if he post the src public idiot. I meant to keep it private who have knowledge with the whole steam system

Src is not going anywhere in near future. Burlex and friends are coding other emulator, maybe they can turn this into opensource project? :-)
The last time i talked to him, he said that coding the Steam emulator is a waste of time. I guess he stopped the project.

Author:  RessourectoR [ Friday, 14 Jul 2006, 13:03 ]
Post subject: 

Nope, as far as I know, he still works on it.

Page 3 of 9 All times are UTC + 3 hours
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/