With the help of radarman36, I'm now doing this. A first dev test release is available here.
As I am considering creating a launcher to make the Steam platform portable I'd like to know some things before:
- Is there some interest in this?
- To the admins: would such an app still fit the site limits and could be hosted here as Steam itself is free but the games are not?
Of course this won't contain any hacks or modification to the app's files.
And if it works, I'd first ask Valve if I am allowed to publish it bundled with Steam, otherwise i'd make an online installer.
Addition: I also looked at the files and registry entries, not by regshot but by search functions.
All Valve apps seem to use only the Steam folder and their registry entries are all under the main valve key, which can be very, very large.
And I have an additional question concerning the registry:
The (Windows-) Installer writes some entries to show Windows that the app is installed and a link to the uninstaller, both with some extra information.
Should these moved temporary moved to the PC, too, or not?
Yeah, it would have some interest; don't worry, no portableapp is useless
Secondly, Steam portable will include only Steam, so about 50MB, so it can be hosted anywhere.
Thirdly, your registry keys and files are right : Steam stores only data on his own folder, or into the registry, in the key you talked about.
But, Steam includes also a service : try some NSIS plugins to install and remove it on your launcher. On a local install, Steam Service executable is located in %PROGRAMFILES%\Coommon Files\Steam.
And finally, the registry keys and data the .msi installer produces are totally useless in a portabilization. Steam don't care about them when launching.
Hopes that will help you
OK, thanks, I'll let you know when I did a first launcher.
But I'm not sure with SteamService.
In older versions (not sure from when, but half a year ago still had it) the service is in this location. But I found this file also in Steam\bin\ now AND the other (Common\Steam\).
Do you know when it is executed as I didn't see It in TaskManger for quite some time which makes me think that it might be not used anymore.
EDIT: What I meant with hosting was not concerned to size (I'm likely going to do an online Installer to get always the latest version which would also keep size small).
I wasn't sure if it could be made an official app here as it's free itself but the main usage reason, the games, are not.
I also thought of a kind of plugin system which would use a folder where you could put ini files that include information on how to recognize a game being installed via Steam and which registry entries and files to backup/move.
And another idea would be putting a .bat file in a local Temp folder that would cleanup the PC if the process would be quit via TaskManger or terminated at shutdown before it could clean up. This could be done via the RunOnce Registry key at next startup and delete the file itself somehow.
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
The problem with Steam is that there are so many different games. I'd be willing to bet each game leaves different files behind.
Simplifying daily life through technology
The problem with Steam is that there are so many different games. I'd be willing to bet each game leaves different files behind.
Simplifying daily life through technology
I alreday said a bit about this.
The games by Valve (the makers of steam) like CounterStrike:Source, TeamFortress 2, Portal, HalfLife and so on only use the Steam diretory and the Valve registry key.
The problem so are other games activatable via Steam like UnrealTournament 3 which also uses the folder Users\Username\Documents\MyGames\UT3\ (on Vin Vista) and maybe more files/folders/registry entries (didn't test this out already).
So I thought of a plugin system to be able to easily add new games (see my last post for more info).
I myself could test for the following games:
And I could try more by asking a friend
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
About Steam Service, the exe located in bin foler is only used for install when first launching.
To run Steam, you have to get your exe located in CommonFiles, as seen into the services console : C:\Program Files\Common Files\Steam\SteamService.exe /RunAsService is the command used by Steam to start the service.
Secondly, I've good template of NSIS launchers. They help me a lot when making portable a new app. Tell me and I'll give you them.
Then, Online installers are hard to make with MSI's files. And Steam msi downloaded on Steampowered.com is incomplete, because it downloads files after, when first launching.
Don't need a bat file, just a line more into your NSIS code. And the plugin system you imagine will be very hard to make, it's more easy to backup the whole steam key.
I didn'want to use the plugin system for the Valve games, as they could be easily backed up with Steam.
It was thought for non-valve games.
And to the online installer:
Steam installs updates very often and downloads often new files, not only on its first launch.
I extracted the installer already with UniExtract and the files seem to be already in the right directory structure and complete.
But i'm going to do a clean install to check everything out again, but I need to at another PC as I've it already installed.
And do you know when and for what the SteanService is exactly used. When I first installed and used Steam (~10 month ago) it run always with Steam, but now it doesn't anymore.
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
For the plugin, if you want, but you'll have to be a good developer in C++ or Pascal, or Delphi.
For the service, Steam uses always. Everytime you launch Steam, the service is started. Proof : http://img209.imageshack.us/img209/5139/captureqb.png
I've just extracted the msi. Seems that it will update automatically everytime. So Valve won't change this installer, but Steam will download separate updates. I think an online installer will be useful only for install, but not for updating.
I've worked on Steam Registry Keys, and here are my results (sorry, I can only tell you about Source games, 'cause I've only this linked to my account) :
Steam path (useful to modify, with the launcher to say to Steam where it's installed) : HKEY_LOCAL_MACHINE\SOFTWARE\Valve
Steam config : HKEY_CURRENT_USER\Software\Valve\Steam
Source games parameters : HKEY_CURRENT_USER\Software\Valve\Source
Half-Life parameters : HKEY_CURRENT_USER\Software\Valve\Half-Life
I think there was some misunderstanding beetween us.
I do not want to create a plugin for NSIS.
I just want to create plugins for the launcher in form of small files telling it how to handle the Games. Probably I should have chosen another word for this...
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
Ok, we'll see this... You're the owner of the project, so do what you want.
Maybe we can share to each other our Steam Id's in order to chat on another way, not only on this forum ?
And, if you've any problem with NSIS programming, don't be scared asking me, I can help you.
[link removed]
please do not reply to this post; I'll remove the link when you got it.
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
I would be interested in Steam Portable, but not for my flash drive. I'd put it on my external hard drive at home, just so I wouldn't have to install the stupid thing every time I reinstall Windows. So loose registry keys wouldn't bother me as much as they would for someone who wants a truly portable Steam.
I don't even have Steam in my KeePass, but I think I have my login/pass somewhere on my computer. (Yes, I know how stupid that is, I just never use Steam, but once I build my new computer, I'll be using it a lot more.) I have a license for Half-Life 2 and I think Team Fortress 2 and a few others that are "free with license of another Source engine game".
Yeah, of course Steam Portable will be for removable devices, but firstly for removable Hard-disks, because I already tried to run a Source game on my pen and it's long, soooooo long :(...
Moreover, you're right : getting all gcf files already is a good thing: you don't need to download them everytime you want to re-install a game.
Of course this was thought for external hard disks and not for flash devices.
They are:
- too slow (especially for small files)
- most of them not big enough (I'd for example need a 32 GB USB thumb drive for all the games connected to my account)
Of course in some time when they are becoming larger, cheaper and quicker (USB 3.0, eSATA ones especially) this would be an option, too.
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
I'll be sure to test this when it comes out in beta, though, I don't think I'll be using this for day to day use for a while, considering the large amount of variables here. (Large amount of games/mods, deep integration into windows, ect)
I'll definatly be watching this if you really follow through, but I'm s little skeptical. Maybe you should start on a smaller app before diving into something as big as Steam. Theres a few good ones in the request forum, like Spybot S&D and Wax.
I wish you the best of luck on this.
Simplifying daily life through technology
I think the only problem with Steam could bethe SteamService.exe and long start-up times. So I hope I can realise this.
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
If you want, I've created a code that will allow you checking if Steam Service already exists on the host post, and if not, installing it.
i can't wait for it
I agree, I'd definitely use this. I use steams "Friends" list to chat with some buddies that refuse to use AIM/Yahoo so this could be handy.
Yeah, me too, and I use Steam very often, but I haven't any news from Benedikt
Sorry for me not posting any news, but I had much work for school.
Next week I'll hopefully have more time to continue work.
@radarman36
could you send me this piece of code either by uploading it to a hilehoster or asking for my e,ail address on Steam?
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
I created your code
If you need help integrating it, pm me on Steam, or ask here.
Here is the service install code, which must be place before Steam.exe execution :
And here's the uninstall code, after Steam.exe close
Additional Notes : For the service install, I've written that the service EXE will be into the Data/Common Files folder. It was just an example, place it wherever you want in the subfolders App, or Data. Just dont forget modifying the code
You also need to compile, the SimpleSC Plugin for NSIS, available here : http://nsis.sourceforge.net/NSIS_Simple_Service_Plugin
Be aware that as soon as you touch services, you need to run as admin. The UAC plug-in is what you want with that. However, your implementation can get quite tricky.
As a matter of fact, I'm in the process of building running as admin into the PortableApps.com Launcher (force, try or none); I'm pretty much done now, then next I'll be doing services. You may possibly want to wait for that. I also happen to fancy avoiding using a plug-in for services if I can. In some ways it would simplify it. I'll be taking a look at the source code for both to see if I can make improvements on the nsh version, and to delete all the enormous quantities of detritus in it (all we'd need is install, start, stop, remove. The rest is overkill).
I am a Christian and a developer and moderator here.
“A soft answer turns away wrath, but a harsh word stirs up anger.” – Proverbs 15:1
Yeah Chris, I haven't seen the NSIS Service Lib before, and it seems less hard to deploy than a .dll plugin. Thank's for the tip !
I'll see this with Benedikt, if he wants to use the plugin, or the .nsh file
I've exceeded Benedikt's work }:) and made my own portable version of Steam. But, it's only for testing and it will be replaced by Beneditk's version (it's a way for me to show him a good example of his future work ).
Tested on Windows XP Mode, without problems.
If anyone is interested in downloading it but only for testing purposes, ask here.
Why not release yours, or show Beneditk your source code so he can merge it with his existing work and make improvements.
Simplifying daily life through technology
I already got his version, gonna test it now (tomorrow?) and then talk with radarman on it again
"Der Klügere gibt nach, deshalb regieren Dumme die Welt."
We were discussing about it on Steam just when you posted this comment
I've sent him my work, so he'll see, make his improvements and publish OUR version.
Stay tuned
I am really looking foward to this. If this really ends up working, this may become my new favorite portableapp!
Simplifying daily life through technology
I don't go too far for you to spare you from illusions, but I tested what I created on my Virtual XP Mode, because I've Windows 7 Ultimate with an Intel processor. It worked without install problems, but I'm waiting for Benedikt's feedback to continue. We need to refine some things, like the live install of Steam, but the launcher is, I think, finished and seems to work well.
I'm proud too to work on Steam Portable project, and it will also become my favourite portable app. Yeah, I'm a gamer