Hi,
A week ago I went to Bruessel / Bruxelles in Belgium to the largest opensource developer conference in Europa, FOSDEM 2009.
openSUSE has a developer room there the last years and we fill our time by holding talks, mostly concerning openSUSE and stuff that we do for the distribution and what our developers do. So the openSUSE organizers asked me to hold a talk on Wine this year, after my LinuxTag talk was so well received.
I expected that like 20-30 people would show up, but it actually were around 110 according to our camera guy and they filled up the room. I have no idea why Wine is so interesting though.
I gave a basic introduction and overview mostly and in the end tried to demo iTunes (failed, because installation was not successful in preparation) and demoed Heroes of Might and Magic III (successful).
If you want to watch my 45 minutes: http://tube.opensuse.org/fosdem09/fosdem09_day2_03-wine.ogg (196MB)
And my slides are here (feel free to reuse): http://files.opensuse.org/opensuse/en/0/05/Fosdem2009-wine.pdf http://files.opensuse.org/opensuse/en/0/05/Fosdem2009-wine.odp
I also said hi to some ReactOS guys. Funnily all of them in suit and tie. :)
Ciao, Marcus
Am Sonntag, 15. Februar 2009 23:03:27 schrieb Marcus Meissner:
Hi,
And my slides are here (feel free to reuse): http://files.opensuse.org/opensuse/en/0/05/Fosdem2009-wine.pdf
Just skimmed over them out of curiosity, found one mistake: GameGuard does not work because it is a rootkit that doesn't work with Wine by design.
2009/2/15 Stefan Dösinger stefandoesinger@gmx.at
Am Sonntag, 15. Februar 2009 23:03:27 schrieb Marcus Meissner:
Hi,
And my slides are here (feel free to reuse): http://files.opensuse.org/opensuse/en/0/05/Fosdem2009-wine.pdf
Just skimmed over them out of curiosity, found one mistake: GameGuard does not work because it is a rootkit that doesn't work with Wine by design.
yeah i was just looking at that too...
all those online protection libraries still don't work, which i think is the next step we have to take on games :p
also the game wasn't heroes of might and magic III , it was dark messiah :P
the german accent gives the presentation a new horizon :D good job. :)
On Mon, 2009-02-16 at 00:16 +0000, Ricardo Filipe wrote:
2009/2/15 Stefan Dösinger stefandoesinger@gmx.at Am Sonntag, 15. Februar 2009 23:03:27 schrieb Marcus Meissner: > Hi,
> And my slides are here (feel free to reuse): > http://files.opensuse.org/opensuse/en/0/05/Fosdem2009-wine.pdf Just skimmed over them out of curiosity, found one mistake: GameGuard does not work because it is a rootkit that doesn't work with Wine by design.
yeah i was just looking at that too... all those online protection libraries still don't work, which i think is the next step we have to take on games :p
also the game wasn't heroes of might and magic III , it was dark messiah :P
the german accent gives the presentation a new horizon :D good job. :)
At least for the HackShield system there isn't all that much missing. It is mainly a double handful of functions in ntoskrnl.exe and a few other bits.
I've gotten that one working at least in the Ragnarok Online 2 game (with a number of less than ideal bits.) There are probably other variations on things that need to happen in other games.
Here's the short list of what's missing for this one at least. Maybe this can get somebody started though I don't ever seem to have enough time to clean this up and get it in for a real patch.
* Proper handling of (what I think is) shared memory. There are some things that get filled into the Peb (reactos does this as part of the csrss process I think but I'm not really sure what all is needed.) Filling in a couple blobs of empty data before the driver ioctls was enough to make hackshield happy but this needs to go somewhere else.
* A pile of functions that just need to be properly implemented (kernel Mdl, WorkItem, Semaphore, Event, etc.)
* Possibly some way to prioritize "driver" threads above those of the application. This one is a bit hard given the way that wine works. This may or may not actually work ok once the kernel locking objects work right (or it could be the app expects the priority to take care of it.) In this patch I am suspending and resuming some threads in the application because it crashes if some driver activities don't complete first.
* There are still some crashes in the hackshield driver (caught and ignored by the try/catch block around the ioctl dispatch) that need to be investigated and fixed for it to be really fully functional as opposed to hacked up.
As I said, the attached patch gets it working but still needs plenty of work. A bunch of the datatypes in wdm.h may actually belong someplace else (like wininternals.h.) The locking function implementations are wrong too as they are just abusing some of the fields to try to call existing wine functions.
-- Chris Wulff