Just had a play around with getting the vista games working and withing 5 minutes i was playing minesweeper 🙂
The solution was simple. I opened up minesweeper.exe in IDA, started debugging it and seen where it was exiting.
I noticed it was taking a jmp after querying the slui thing that olipro mentioned, so all i did was placed 5 No Operation bytes (0x90) at the jmp and hey presto, it works!
This also worked for the rest of the games, although the cardgames requires CardGames.dll in the system32 directory. and every other game apart from minesweeper has only 2 bytes to NOP.
For your reference, heres the memory addresses of the places to NOP:
- Freecell: 0x1026C15 (2 bytes)
- Hearts: 0x102B557 (2 bytes)
- Minesweeper: 0x10252F9 (5 bytes)
- Purple Place: 0x1059BD2 (2 bytes)
- Solitaire: 0x102B8BA (2 bytes)
- Spider Solitaire: 0x1029059 (2 bytes)
Unfortunately i havn’t been able to try the other games since my laptop runs Vista Home Basic (so no funky aero or chess titans :()
Hope somebody can get the rest using this as a reference 🙂