<?xml version="1.0" ?>
<kc>

<title>Wine Traffic</title>

<author contact="http://www.theshell.com/~vinn">Brian Vincent</author>
<issue num="258" date="21 Jan 2005 00:00:00 -0800" />
<intro> <p>This is the 258th issue of the Wine Weekly News publication.
Its main goal is to buy plane tickets. It also serves to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix.  Think of it as a Windows compatibility layer.  Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available.   You can find more info at <a href="http://www.winehq.org">www.winehq.org</a></p> </intro>
<stats posts="217" size="1121" contrib="59" multiples="30" lastweek="39">

<person posts="33" size="173" who="Luke Kenneth Casson Leighton" />
<person posts="14" size="47" who="Paul Vriens" />
<person posts="24" size="75" who="Mike Hearn" />
<person posts="21" size="83" who="Robert Shearman" />
<person posts="8" size="48" who="Bill Medland" />
<person posts="8" size="24" who="Ivan Leo Puoti" />
<person posts="8" size="23" who="Juan Lang" />
<person posts="7" size="35" who="Oliver Stieber" />
<person posts="6" size="17" who="Ferenc Wagner" />
<person posts="5" size="16" who="Tom" />
<person posts="4" size="69" who="Antti =?ISO-8859-15?Q?M=E4kel=E4?=" />
<person posts="4" size="54" who="Jonathan Ernst" />
<person posts="4" size="18" who="Joris Huizer" />
<person posts="4" size="14" who="Vincent B&#233;ron" />
<person posts="4" size="12" who="Dimitrie O. Paun" />
<person posts="4" size="12" who="Alexandre Julliard" />
<person posts="4" size="12" who="Hans Leidekker" />
<person posts="3" size="15" who="Mike McCormack" />
<person posts="3" size="11" who="Wez Furlong" />
<person posts="3" size="10" who="Joachim von Thadden" />
<person posts="3" size="8" who="Jakob Eriksson" />
<person posts="3" size="8" who="Steven Edwards" />
<person posts="2" size="30" who="=?ISO-8859-1?Q?Antti_M=E4kel=E4?=" />
<person posts="2" size="8" who="Huw D M Davies" />
<person posts="2" size="7" who="Jeremy Newman" />
<person posts="2" size="6" who="Paul van Schayck" />
<person posts="2" size="6" who="Eric Pouech" />
<person posts="2" size="4" who="Alexandre Julliard" />
<person posts="1" size="177" who="Michael Stefaniuc" />
<person posts="1" size="5" who="Michael Stefaniuc" />
<person posts="1" size="5" who="Con Kolivas" />
<person posts="1" size="4" who="Stefan Zechmeister" />
<person posts="1" size="4" who="Dripple" />
<person posts="1" size="4" who="Jeremy White" />
<person posts="1" size="3" who="Jesse Allen" />
<person posts="1" size="3" who="Paul Millar" />
<person posts="1" size="3" who="=?ISO-8859-1?Q?Andr=E9_Goddard_Rosa?=" />
<person posts="1" size="3" who="Brian Vincent" />
<person posts="1" size="3" who="Marcus Meissner" />
<person posts="1" size="3" who="Raphael" />
<person posts="1" size="3" who="Rainer Haake" />
<person posts="1" size="3" who="Boaz Harrosh" />
<person posts="1" size="3" who="Rizwan Kassim" />
<person posts="1" size="3" who="Ingo Molnar" />
<person posts="1" size="2" who="Dmitry Timoshkov" />
<person posts="1" size="2" who="Jason Edmeades" />
<person posts="1" size="2" who="=?iso-8859-1?b?UultaQ==?= Assailly" />
<person posts="1" size="2" who="Rolf Kalbermatter" />
<person posts="1" size="2" who="Alejandro Bonet" />
<person posts="1" size="2" who="vaguegirl" />
<person posts="1" size="2" who="Alexey A. Gaidioukov" />
<person posts="1" size="2" who="Troy Rollo" />
<person posts="1" size="2" who="Andreas Mohr" />
<person posts="1" size="2" who="Vitaly Lipatov" />
<person posts="1" size="1" who="Ishaq M." />

</stats>
<section
        title="WineConf 2005"
        subject="WineConf 2005: details"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/01/0536.html"
        posts="1"
        startdate="17 Jan 2005 00:00:00 -0800"
>
<topic>Project Management</topic>
<mention></mention>
<mention>WineHQ</mention>

<p>I sent out the following to announce WineConf 2005:</p>

<quote who="Brian Vincent"><p>
<table>
<tr><td>WHAT:</td><td>  WineConf 2005</td></tr>
<tr><td>WHEN:</td><td>  April 30 - May 1, 2005</td></tr>
<tr><td>WHERE:</td><td> Institute of Communication Networks and Computer Engineering<br />
       Stuttgart-Vaihingen Campus<br />
       University of Stuttgart</td></tr>
<tr><td>WHO:</td><td>   Anyone interested in Wine development.  Please note: is a developers-only
       conference.</td></tr>
<tr><td>HOW:</td><td>   Check out WineHQ for travel details.  We still have quite a lot to
       work out, including the actual agenda, but we'll update these web
       pages as more info becomes available:<br /><br />

 <a href="http://www.winehq.org/site/wineconf">http://www.winehq.org/site/wineconf</a>
</td></tr></table></p><p>	       

If you plan on attending, please register on the website using the RSVP form
as soon as possible.  You can also find details on there about the wineconf 
mailing list.  At this point there's a lot of planning that remains,
so you'll have to bear with us as that discussion occurs.  For those of you
interested in Samba development, you might want to check out the SambaXP 
conference (<a href="http://www.sambaxp.org">http://www.sambaxp.org</a>) since
it's going to occur the two days following WineConf.
</p><p>
WineConf 2004 was a lot of fun and I hope everyone can make it again.  With
a little luck we'll be able to attract everyone who couldn't make it to balmy,
breezy Minneapolis last year.
</p></quote>

<p>Don't forget to <a href="http://www.winehq.org/site/wineconf/rsvp">RSVP</a>.  
See ya in Stuttgart!</p>

</section>
<section 
	title="FreeDCE &amp; Wine &amp; DCOM" 
	subject="DCE 1.2.2 released under LGPL license (strategically important for Wine)"
	archive="http://www.winehq.org/hypermail/wine-devel/2005/01/0477.html" 
	posts="34"
	startdate="16 Jan 2005 00:00:00 -0800"
	enddate="18 Jan 2005 00:00:00 -0800"
>
<topic>RPC / COM / OLE</topic>
<mention></mention>
<mention>Microsoft</mention>
<mention>Rob Shearman</mention>
<mention>TransGaming</mention>

<p>Last week the Open Group 
 <a href="http://www.opengroup.org/comm/press/05-01-12.htm">announced</a>
 the release of <a href="http://www.opengroup.org/dce/">DCE 1.2</a> under
 the LGPL.  DCE, the Distributed Computing Environment, is a massive 
 amount of software previously available under a restrictive license
 precluding it's use in most free software projects.  In fact, if you
 were to just read the press release above it would be next to impossible
 to grasp exactly what all this stuff does.  What it could potentially
 mean for Wine is, any application using DCOM or Microsoft's RPC directly
 could use the low-level mechanisms in DCE to communicate to another
 machine.  If you're thinking, "Oh, that's just a client/server type
 of thing", well, you're on the right track.  That's the nutshell version,
 but let's take minute to look into COM and the pieces involved.</p>

<p>First, Mike Hearn wrote a nice intro to COM a few months ago (see WWN
<a href="http://www.winehq.com/?issue=231#COM%20and%20OLE%20Marshalling%20Tutorial">issue
#231</a>).  It's worth taking a look at to get a handle on some of the
terminology involved.  COM, Component Object Model, is a method for 
objects within a program to be passed around in way that allows whatever
is passing the object to not really care about what's receiving the
object.  So, say you have a function in a library that needs to send
some data over to a different library.  If you use COM, the data is
sent in a way that allows you to rip out that other library and completely
replace it with a different one.  COM also allows for fancy things
such as Object Linking and Embedding to work.  OLE sits on top of COM
and lets you do things like stick an Excel spreadsheet in Word by
actually embedding an instance of Excel in the other program.</p>

<p>That concept in and of itself it quite useful.  Microsoft took this 
a step further and came up with the idea of "Distributed COM".  With DCOM,
different processes and threads can talk to each other.  As Mike described
it,
<quote who="Mike Hearn">
 Each COM object resides in an apartment, and each apartment resides 
in a process, and each process resides in a machine, and each machine 
resides in a network. Allowing those objects to be used from any  of 
these different places is what DCOM is all about.</quote>

</p><p>
Now, it just so happens that most DCOM communication just needs to happen
within a machine.  Right now that's where the priority lies with Wine -
making things like InstallShield work requires DCOM.  Having Wine
speak DCOM "over-the-wire" requires hooking it into the RPC subsystem
and making sure everything is binary compatible with Microsoft. Wine
does have an implementation compatible with Microsoft's RPC, but it
needs more work.  Right now Wine's DCOM doesn't even use it - it
communicates between apartments using named pipes. Luke Kenneth Casson 
Leighton started off a large thread about DCE going LGPL and pointed 
out some of the advantages of integrating with it:</p>
<quote who="Luke Kenneth Casson Leighton"><p>
with FreeDCE using an NTLMSSP authentication plugin and a
"Named Pipes" transport in samba or samba tng, it becomes possible for
FreeDCE to be utilised to make DCOM applications work under Wine.
</p><p>
DCOM applications can be made to WORK under Wine using FreeDCE, Samba or
Samba TNG with NamedPipes.
</p><p>
unmodified Win32 applications can do DCE/RPC and DCOM utilising FreeDCE
and Samba, with a minimum of development effort inside Wine and Samba.
</p><p>
also, FreeDCE can be leveraged to provide _proper_ implementations of
the underlying Win32 interfaces.
</p><p>
for example, REGEDT32.EXE can be made to work over a network running
_natively_ under Wine.
</p><p>
NetUserGetInfo can return "meaningful" information.
</p></quote>

<p>There was quite a bit of chatter back and forth between Luke, 
Mike, and Rob Shearman.  Rob and Mike pointed out that FreeDCE
didn't contain any DCOM work that could be used by Wine.  In
fact, no one has a free implementation of the Win32 API's necessary
for DCOM.  Luke pointed out that it was silly to try to reimplement
DCOM on anything other than DCE because it's just a massive 
amount of code that shouldn't be duplicated.  After some lengthy
exchanges, Mike summarized things from a Wine perspective:</p>

<quote who="Mike Hearn"><p>

As Rob has pointed out, we're not duplicating anything as the code we need
does not exist. There is no NIH (<i>ed. note: Not Invented Here</i>) syndrome
here: if you can point to a LGPL
or BSD/X11 licensed implementation of OLE32, OLEAUT32 and things like
CreateProxyFromTypeInfo then we'd be very interested. The only one we do
know of is in Cedega and we already used quite a lot of code from that.
</p><p>
As it is, the DCE-RPC code already in Wine CVS is more than enough for now.
If we need to extend it later using code from FreeDCE may be possible, but
right now we :
<ul>
a) Don't know of *any* pure DCE-RPC applications people want to run<br />
b) Have a DCOM implementation that does not use RPC</ul></p><p>

(b) will change at some point, however most programs out there today do
not use the NDR marshallers or DCE-RPC APIs, instead they use MOP opcode
strings or the universal marshaller which generates proxies on the fly
from type databases. So there's still a lot to implement outside of
the core RPC API, the capabilities of which just aren't used that heavily
in Windows.
</p><p>
So to recap:
<ul>
 <li> FreeDCE implements DCE-RPC better than we do, but we don't care because 
  we don't actually use our current RPC code yet, and when we do it won't
  be stressing the current capabilities. The capabilities that *will* be 
  needed from our RPC runtime aren't implemented by any pre-existing
  project as they are Microsoft-specific extensions to the API</li>

 <li> Samba4 is focussed only on wire compatibility, but not binary API
  compatibility. Right now we don't care much about wire compat, and won't
  for many years. They do not implement much code we care about, that
  which we do care about (things like the OXID Resolver) are not hard to
  write. Even so we have a dialog open with them on code sharing.</li>
</ul></p><p>
Just to make this point perfectly clear *WE ARE WRITING CODE THAT DOES NOT
EXIST ELSEWHERE*. The closest implementation of DCOM we need can be
found in TransGaming's Cedega, and we're using bits of their code already.
</p></quote>

<p>Then there was a lot more back and forth discussion concerning
details of using IDL compilers and such.  Wez Furlong jumped into
the conversation and approached it from the opposite direction that
Mike described:</p>
<quote who="Wez Furlong"><p>
FreeDCE doesn't contain a working DCOM implementation.  The following 
areas need(ed) some work for that:
<ol>
<li> NTLMSSP (which we now have in freedce, thanks to Luke)</li>
<li> The rpcd/endpoint mapper needs awareness of ORPC and implement one or 
two ORPC specific services in order to maintain the lifetime of remotely 
activated components.</li>
<li> The IDL compiler and marshalling stubs need awareness of ORPC</li>
<li> On top of that, the local COM library needs to be implemented</li>
</ol></p><p>
Filling out these areas is *massively less work* than re-implementing 
DCE-RPC; I made a fair start on (2) and (3) 4 years ago, but lack of 
interest from the world at large (and a need to pay my bills) caused it 
to be put on hold.
</p><p>
Please believe me when I say that there is a large amount of non-trivial 
code in there; I have huge respect for the people that wrote it and the 
amount of time that it took to get it there.  Don't forget that this is 
production quality code that has been used by huge players for years.  I 
pity anyone that would think of taking on the task of re-implementing 
it, not because it's nasty but because it's a *huge* effort.
</p><p>
While I can't commit development time right at this moment (I'm booked 
up with the PHP project in most of my "free" time), I am happy to help 
in any other way that I can; I researched the implementation of DCOM 
quite heavily back then, so I probably have a better idea than most 
about getting it done.
</p><p>
PS: I'd <i>love</i> to have someone sponsor my employer (omniti.com) to have 
me work on getting this implemented.
</p></quote>

<p>Discussion also veered into what exactly from DCE could be integrated and
how to go about doing so.  Rob asked Luke to take a look at the RPC code
and see what he thought.  Luke did so, and by the end of the week began
posting questions about the specifics of it.  Discussions like this are
interesting because Wine folks tend to have a top-down approach at
looking at this and the Samba/TNG folks tend to have a bottom-up view.
When they meet in the middle it makes for a lot of people scratching
their heads.</p>

</section>
<section
        title="Pirates! Screenshot"
        subject="Pirates! under wine"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/01/0460.html"
        posts="7"
        startdate="15 Jan 2005 00:00:00 -0800"
	enddate="16 Jan 2005 00:00:00 -0800"
>
<topic>Integration</topic>

<mention>Mike Hearn</mention>
<mention></mention>
<mention>Jason</mention>
<mention>Unknown</mention>

<p>Screenshots are just cool.  Screenshots showing off
one of the hottest selling new games running on Wine
<a href="http://www.winehq.com/hypermail/wine-devel/2005/01/att-0460/01-pirates_small.jpg">kick ass</a>.
Pirates!, a remake of that game from the 80's some of
us lost our youth to, was coaxed into work thanks to
the work of Oliver Stieber.  Thus far the code required
to run it hasn't appeared, but with the work being done
by Jason Edmeades, DirectX 9 is beginning to take shape.  
Oliver wrote:</p>
<quote who="Oliver Stieber"><p>

 I've been working on DirectX 9 over the past week
and have managed to get 
<a href="http://www.atari.com/pirates/pirates/index.php">Sid 
 Meier's Pirates!</a>
 working better than it does for me under Cedega
 along with quite a few demos
 using Directx 9.
</p><p>
 There's still quite a lot of work to do to get a full
 Directx 9 implementation but it shouldn't take too
 long to get Directx 9 in wine as functional as DirectX
 under cedega.
</p><p>
 I'm just doing a bit of housekeeping so the patches
 will be ready for next week along with a list of
 what's working and what's not.
</p></quote>

<p>Mike Hearn wanted to know just how well it ran
and how things like installation worked.  Oliver
explained:</p>
<quote who="Oliver Stieber"><p>
 I'm getting memory allocation problems after quite a
 bit of game play, no videos yet, I haven't tried
 installing and I always use no-cd patches.
</p><p>
 The speeds a bit choppy, but playable, and there are a
 few minor graphics gliches (I've got a test case for
 one so it shouldn't be too hard to fix) I would rather
 have slow gameplay than buggy gameplay.
</p><p>
 Out of the box installs require a bit more than
 DirectX but hopefully the OLE and MSI work that's been
 going on lately should help that out.
</p><p>
 I'm also thinking working on half-life 2 and possibly
 WoW and Sim 2 as some point, but I may just try to get
 the DirectX 9 implementation as complete as possible
 first. [unless the makers of Sim 2 give me enough
 money to pay the rent!]
</p></quote>

<p>He added later:</p>
<quote who="Oliver Stieber"><p>
 I'm testing some of the more complex DirectX 9
 functionality at the moment and working on an annoying
 clipping bug to try and improve directX with
 everything, but I'll have a look at Pirates again
 soon.
</p><p>
 If anyone's got anything else that they would like me
 to look at (and there's a demo or you can post me a
 copy) then send me an email and I'll see what I can
 do.
</p><p>
 [Pirates is very simple and will run with stubbed out
 textures, at the moment it's running fine with simple
 world detail and any level of model complexity, pixel
 shaders turned off and simple shadows I can't see it
 breaking any time soon]
</p></quote>

<p>Later in the week Oliver sent 
<a href="http://www.winehq.com/hypermail/wine-patches/2005/01/0537.html">some patches</a> and noted on wine-devel:</p>
<quote who="Oliver Stieber"><p>
I've just sent some patches to patches that are enough
to get Pirates running.
</p><p>
Installing pirates...
Pirates uses a MSI installer, I had to 
<ul>
<li>Set winver to win98.</li>
<li>When prompted about directX 9 say no. (or yes if you
really want to).</li></ul></p><p>
If you get an OLE error make a note and try again, I
managed to install on the forth attempt.
</p><p>
Then to run Pirates you need to...
<ul>
<li>Turn pixel shaders off</li>
<li>Turn shadows off. </li></ul>
or you get missing textures.
</p><p>
I'd also suggest turning down the detail (just
incase), but it doesn't seem to matter that much.
</p><p>
The problems I've come across so far are:
Memory issues: Unknown cause as yet.
</p><p>
When visiting the Governor only a section of the
screen fades in and out, this is caused by a viewport
larger than the window not being handled correctly.
</p><p>
Sometimes textures on models like the docks don't
render properly.
</p><p>
Sometimes the textures are the wrong way around or
wrapped incorrectly, this may be the same problem as
above.

</p><p>
I get 7-12 FPS in sailing, everything else is a lot
quicker (upto 70fps).
</p><p>
AMD 2000+ 512MB Ram  ATI-9600.
</p><p>
I've tried a few other Direct x 9 games but I
generally can't get passed the installer (using wine
or cegeda).</p></quote>

</section>

<section
        title="Wine Wiki"
        subject="[Fwd: Wine-Wiki.org]"
        archive="http://www.winehq.org/hypermail/wine-devel/2005/01/0611.html"
        posts="3"
        startdate="19 Jan 2005 00:00:00 -0800"
	enddate="20 Jan 2005 00:00:00 -0800"
>
<topic>Documentation</topic>

<mention></mention>
<mention>Ivan Leo Puoti</mention>

<p>Ivan Leo Puoti forwarded a message about a new Wine Wiki:</p>

<quote who="Jason"><p>

 Can you please add <a href="http://wine-wiki.org">Wine-Wiki.org</a>
 to the list of Compatibility site.  We have been growing greatly, and
 if it was on the site, it would help everyone.


</p></quote>

</section>

<section 
	title="Nvidia Driver Bug" 
	subject="nv driver causes Xrender bug to be misdetected"
	archive="http://www.winehq.com/hypermail/wine-devel/2005/01/0475.html" 
	posts="1"
	startdate="16 Jan 2005 00:00:00 -0800"
>
<topic>Graphics</topic>
<mention></mention>

<p>Mike Hearn gave everyone a heads up on a problem with a graphics
driver:</p>
<quote who="Mike Hearn"><p>

Using the so-called 'open source' nv driver that ships with Xorg causes
Wine at least on my hardware to misdetect libXrender as being buggy. This
disables clientside font rendering and also causes the entire screen to go
black whenever a Wine application has focus.
</p><p>
Just letting people know in case they see similar symptoms. I normally run
with the binary nvidia driver which doesn't have the same problem, so I'll
not be debugging this anytime soon.

</p></quote>

</section></kc>
