Talk:Game explorer

From NSIS Wiki
Jump to navigationJump to search

Thank you SO MUCH for this script!!! I've been fighting GameuxHelper.dll-based scripts for days, and this script solved all problems in 10 minutes! Thanks again! ROCK ON!

Updating for Win7 features

Having worked on getting a certain episodic game series installing on Vista and Win7, I've done some development on this NSH. Here's my sketch of my work and how I intend to refresh this for public consumption. The bulk of my findings are around the DirectX 11 Tech preview in DirectX SDK (March 2009). Currently the documentation is only included in the SDK download, so I can't link to it directly. Once the Win7 stuff is publicly posted, link away.

Games Definition File (GDF)

I'm going to expand a little more about what the GDF is for and what the requirements are. If using game ratings (ESRB, PEGI, etc), the executable has to be signed. There are also extra fields in the GDF which are applied to Windows 7 only. Won't be TOO detailed, but will cover what's required and highly recommended.

IGameExplorer2

With Win7, there's a new interface for adding, removing, and verifying games for inclusion for GamesEx. It's a lot of good stuff that streamlines the inclusion of tasks and most importantly removal of tasks. It also removes the dependancy for GUIDs by requiring the location of the GDF instead. No need to save the GUID for Win7, but still need it for Vista installs.

My updated version will accommodate between the existence of IGameExplorer2, fall back to IGameExporer, and fail gracefully if neither show up. NSIS Macro calls will be the same, but an additional variable, location of the GDF, must be added to each call. IGameExporer using the GUID, IGameExporer2 using GDF location.

You'll still need to preserve the GUID for Vista installations and uninstalls on Vista. If the user installs and/or uninstalls on Win7, no need to preserve a GUID as it's irrelevant.

Play/Support Tasks

In Win7, the play/support tasks are imbedded into the GDF. When IGameExplorer2::InstallGame is run, all the tasks will be installed properly, thus you must not manually enter tasks as you do for Vista.

What I'll do is add a new 'insert tasks' macro into the document. However, if IGameExplorer2 is detected at runtime, it will not write the tasks. This way we don't need to do platform checking on the host NSIS script.

IGameStatistics

Win7 introduces this 'statistics' concept which displays data about the user's game play. This is implemented with the game executable itself, so nothing for NSIS to worry about. There is the removal of statistics which seems to not get removed when running IGameExplorer2:UninstallGame(). An option for someone wanting to force removal of stats may be needed.

Previous NSIS Scripts Compatibility

For this new version of GameExplorer.nsh to work with existing NSIS scripts, there will be two steps to take:

  1. Update the embedded GDF to a recent version using the latest GDF Editor.
  2. Update the NSIS Macro call GameExplorer_RemoveGame to add the GDF location.
  3. [Recommended] Use a new Macro call GameExporer_TasksAdd to add tasks, GameExporer_TasksRemove to remove them.

Once this is done, the install will work on Win7 and Vista Game Explorers. All without needing to worry about platforms you're installing on.

Thoughts? Questions? Concerns? Ask! --Seg 02:14, 6 July 2009 (UTC)