Hello together!
I am using wine since several years. I never questioned the underlaying wine techniques since wc3 did run very nice.
Well some new games are out now and some will be available soon, so I am asking my self: Are those games goin to work with wine? So I started to think on wine. How does it work? What is it made of?
With git I got latest wine source code, and I had a look on some how-tos.
But I did not get the point.
An exe file is loaded with the wine loader. The loader wrapps somehow the SW, so the library calls (e.g drd) are mapped to wine libraries.
Can anybody tell me how this works in detail? Since exe files will execute assembler code. Is there some documentation about this? I am C-programmer, so I can read source code. But I need some hints to understand wine really.
Thanks a lot!
Kind regards
wine basics
Hi,
Wine targets Windows Apps and Games, but i doubt you need to know how the loader stuff works. But to answer you questions:
The assembler parts of "exe files" are executed like any other linux app on your cpu, and if there's a API call it gets "wrapped" to the corresponding function in Wine. You can have a look at the Dev Guide:
http://www.winehq.org/docs/winedev-guide/index
As a C-programmer you can also think about contributing to Wine, the loader stuff is quite stable, but the dlls are ongoing work. Maybe you can find some easy Bugs in bugzilla to start with it.
Wine targets Windows Apps and Games, but i doubt you need to know how the loader stuff works. But to answer you questions:
The assembler parts of "exe files" are executed like any other linux app on your cpu, and if there's a API call it gets "wrapped" to the corresponding function in Wine. You can have a look at the Dev Guide:
http://www.winehq.org/docs/winedev-guide/index
As a C-programmer you can also think about contributing to Wine, the loader stuff is quite stable, but the dlls are ongoing work. Maybe you can find some easy Bugs in bugzilla to start with it.
Hello,
thanks for your reply.
I am wondering where the most problems are.
So the "wrapping" of API calls, or bugs in wine source codes.
The first bugs would be kind of systematic, the second ones just normal programming bugs. Thats why I try to understand the loading and API wrapping stuff. If I am right problems start when (other) libraries are used, such as d3d API.
I had a look at bugzilla. In general mouse handling works. But there are some bugs related to mouse issues (e.g. slow mouse). Well, there are several possiblities to get access to mouse. You can use directx API or Windows API.
But some games work, some not. I have no feeling about how to fix something like this, since I don't know the "engine". Maybe it is bad programmed from game developpers, or a bug in some wine libs or a wrong mapping of API calls.
Thats why I want to understand it. And, in addition, it's quite interessting for me...
I will read through game developpers guide. Maybe I can contribute something. But that's lot's of work for me before. Knowing a peace of C and programming/debugging wine are two sorts of things. We will see.
thanks for your reply.
I am wondering where the most problems are.
So the "wrapping" of API calls, or bugs in wine source codes.
The first bugs would be kind of systematic, the second ones just normal programming bugs. Thats why I try to understand the loading and API wrapping stuff. If I am right problems start when (other) libraries are used, such as d3d API.
I had a look at bugzilla. In general mouse handling works. But there are some bugs related to mouse issues (e.g. slow mouse). Well, there are several possiblities to get access to mouse. You can use directx API or Windows API.
But some games work, some not. I have no feeling about how to fix something like this, since I don't know the "engine". Maybe it is bad programmed from game developpers, or a bug in some wine libs or a wrong mapping of API calls.
Thats why I want to understand it. And, in addition, it's quite interessting for me...
I will read through game developpers guide. Maybe I can contribute something. But that's lot's of work for me before. Knowing a peace of C and programming/debugging wine are two sorts of things. We will see.
It's not that hard as you think right now 
The Problem is more in wine's source code that implements the API, we are implementing a big portion of the really needed API, but of course there are Bugs and some APIs are just not implemented.
recently code got in to use a X feature called xinput2 to get better mouse input, that caused bugs in some games, but made much others happy. now we only need to fix "some" games

The Problem is more in wine's source code that implements the API, we are implementing a big portion of the really needed API, but of course there are Bugs and some APIs are just not implemented.
recently code got in to use a X feature called xinput2 to get better mouse input, that caused bugs in some games, but made much others happy. now we only need to fix "some" games

Hi...
I installed steam and team fortress 2 some days ago.
Well steam works, TF2 not.
Well my laptop is not for gaming, but I just want toplay around with wine.
During testing I recognized some "fixme" popups in the command line.
Well, mybe I could do domething, but after fixme there comes not much usefull information....
Anyway, is there a complete d3d api description? With funtcions, parameters and what those functions are doing?
Just guessing by the "d3d.h" file seems not to be sufficient.
Where is the most computing power being wasted while using wine?
Is the d3d wrapper the bottleneck? Or something else?
Thanks a lot!
Kind regards
I installed steam and team fortress 2 some days ago.
Well steam works, TF2 not.
Well my laptop is not for gaming, but I just want toplay around with wine.
During testing I recognized some "fixme" popups in the command line.
Well, mybe I could do domething, but after fixme there comes not much usefull information....
Anyway, is there a complete d3d api description? With funtcions, parameters and what those functions are doing?
Just guessing by the "d3d.h" file seems not to be sufficient.
Where is the most computing power being wasted while using wine?
Is the d3d wrapper the bottleneck? Or something else?
Thanks a lot!
Kind regards