wn20031108_195.xml -brian
<?xml version="1.0" ?> <kc> <title>Wine Traffic</title> <author contact="http://www.theshell.com/~vinn">Brian Vincent</author> <issue num="195" date="11/08/2003" /> <intro> <p>This is the 195th issue of the Wine Weekly News publication. Its main goal is to bemoan the breakup of O-Town. 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.com">www.winehq.com</a></p> </intro> <stats posts="185" size="670" contrib="65" multiples="28" lastweek="31"> <person posts="13" size="34" who="Alexandre Julliard" /> <person posts="13" size="30" who="Mike Hearn" /> <person posts="12" size="21" who="Ivan Leo Murray-Smith" /> <person posts="11" size="82" who="Shachar Shemesh" /> <person posts="10" size="24" who="Dimitrie O. Paun" /> <person posts="9" size="40" who="Raphael Junqueira" /> <person posts="8" size="17" who="Eric Pouech" /> <person posts="7" size="24" who="Carlos Lozano" /> <person posts="6" size="16" who="Jerome Bouat" /> <person posts="5" size="25" who="Rob" /> <person posts="5" size="21" who="Tommy McCabe" /> <person posts="5" size="14" who="Rein Klazes" /> <person posts="4" size="19" who="Dmitry Timoshkov" /> <person posts="4" size="11" who="Ferenc Wagner" /> <person posts="4" size="10" who="Steven Edwards" /> <person posts="4" size="10" who="Sylvain Petreolle" /> <person posts="4" size="8" who="Lionel Ulmer" /> <person posts="3" size="11" who="Jason Edmeades" /> <person posts="3" size="9" who="Adam Gundy" /> <person posts="3" size="6" who="Ralf Juengling" /> <person posts="2" size="41" who="Gregory M. Turner" /> <person posts="2" size="9" who="Nick Sukharev" /> <person posts="2" size="9" who="Geoff Thorpe" /> <person posts="2" size="7" who="Jonathan Wilson" /> <person posts="2" size="6" who="Tom" /> <person posts="2" size="5" who="Kai Bruning?=" /> <person posts="2" size="4" who="Boris 'pi' Piwinger" /> <person posts="2" size="4" who="Jeremy White" /> <person posts="1" size="17" who="Jerry Jenkins" /> <person posts="1" size="14" who="Roderick Colenbrander" /> <person posts="1" size="10" who="Vincent Béron" /> <person posts="1" size="8" who="Marcelo Duarte" /> <person posts="1" size="6" who="Nikolay Sukharev" /> <person posts="1" size="4" who="Dan" /> <person posts="1" size="4" who="Robert Reif" /> <person posts="1" size="4" who="Zsolt Rizsanyi" /> <person posts="1" size="3" who="Brian Vincent" /> <person posts="1" size="3" who="Martin Troester" /> <person posts="1" size="3" who="Robert Shearman" /> <person posts="1" size="3" who="K. Vogel" /> <person posts="1" size="3" who="Subhobroto Sinha" /> <person posts="1" size="2" who="Uwe Bonnes" /> <person posts="1" size="2" who="Troy Rollo" /> <person posts="1" size="2" who="Filip Spacek" /> <person posts="1" size="2" who="Jakob Eriksson" /> <person posts="1" size="2" who="Robert Shearman" /> <person posts="1" size="2" who="Michael Sauer" /> <person posts="1" size="2" who="Rolf Kalbermatter" /> <person posts="1" size="2" who="Roderick Colenbrander" /> <person posts="1" size="2" who="Gerhard W. Gruber" /> <person posts="1" size="2" who="André Johansen" /> <person posts="1" size="2" who="robert w hall" /> <person posts="1" size="2" who="Karl Vogel" /> <person posts="1" size="2" who="Peter Hartshorn" /> <person posts="1" size="2" who="Hannu Valtonen" /> <person posts="1" size="2" who="Jason Edmeades" /> <person posts="1" size="2" who="Jeremy Newman" /> <person posts="1" size="2" who="Dan Kegel" /> <person posts="1" size="2" who="Gerald Pfeifer" /> <person posts="1" size="2" who="Johan Dahlin" /> <person posts="1" size="2" who="Robert J. Peek" /> <person posts="1" size="2" who="Phil Krylov" /> <person posts="1" size="1" who="Boaz Harrosh" /> </stats> <section title="News: Wine for Crystallography" subject="News" archive="http://www.ccp14.ac.uk/solution/wine/" posts="1" startdate="11/01/2003" enddate="11/08/2003" > <topic>News</topic> <p>This week's issue is once again a little late. Things have been quite busy in real life. Conversely, things have been a little slower than normal in the Wine world. The mailing lists and CVS have seen less activity than they have in the previous few months. </p> <p>Part of that means it's a little harder to find news stories.. but of course that's why Google exists. I found a page describing how to use Wine to run some <a href="http://www.ccp14.ac.uk/solution/wine/">specialized scientific</a> (crystallography) software. It appears these instructions have been around for a while, but the screenshots are still nice.. </p> </section> <section title="WineConf 2004" subject="Announcing Wineconf 2004" archive="http://www.winehq.com/hypermail/wine-devel/2003/11/0075.html" posts="1" startdate="11/04/2003" enddate="11/04/2003" > <topic>WineConf 2004</topic> <p>Over the past month there's been more discussion of a Wine developer's conference. A vote was called for and the results are in. WineConf 2004 will be held the weekend of January 31/February 1st 2004 in St. Paul, Minnesota. Jeremy White announced it:</p> <quote who="Jeremy White"><p> Okay, I've finally put together a web page and mailing list to centralize our information about Wineconf. </p><p> You can view the page here: <ul><a href="http://www.winehq.org/wineconf/"> www.winehq.org/wineconf/</a></ul></p><p> It's just a start; there are lots of details to fill in, but now everyone has a place to look. </p><p> I'd appreciate it if interested parties could both let me know that they'd be there via the registration form and join the mailing list so that we can discuss the agenda. </p><p> Once we've defined a bit more of an agenda, I'd like to go ahead and announce the conference as a whole to wine-announce. </p></quote> <p>The web page above includes more detail:</p> <quote who="Codeweavers"><p> Everyone is welcome at the second semi regular conference of Wine enthusiasts. Come and gather with fellow Wine hackers to: <ul> <li> Discuss the future of Wine</li> <li> Work on nasty glibc bugs</li> <li> Attack installers in an install-o-thon</li> <li> Relax in the beautiful winter weather of Minnesota, enjoying the St. Paul Winter Carnival (complete with Ice Palace!).</li> <li> Marvel at how the weather promotes an amazing amount of hacking time.</li> <li> Hoist a real glass of Wine with your compadres at the Mall of America.</li> </ul></p><p> The conference is in the early stages of planning, so full details are not yet available. However, here are the details that are firm: </p><p><u>Date</u> <ul> Saturday, January 31st and Sunday, February 1st, 2004. </ul></p><p> <u>Location</u><ul> At the conference facility at CodeWeavers headquarters;<br /> Court International Building<br /> 2550 University Avenue West<br /> St. Paul, MN 55114<br /> 651-523-9300</ul></p></quote> <p>February 1st will also be the Superbowl. </p> </section> <section title="DirectX Games Tested" subject="Is it time for playing games on WINE?" archive="http://www.winehq.com/hypermail/wine-devel/2003/11/0000.html" posts="8" startdate="11/01/2003" enddate="11/02/2003" > <topic>IO</topic> <p>Carlos Lozano posted some success stories for games running under a standard Wine installation:</p> <quote who="Carlos Lozano"><p> Is it time for playing games on WINE? Here goes some sucessfull stories :) If you need more screenshots, logs or another info about this games, leave me know. </p><p> Date of the test: 20031101 </p><p> <u>Star Wars: The Phantom Menace.</u> </p><p> CDROM: Original disc, not necessary any trick. Additional wine patches: No <ul> <li> Install: Yes.</li> <li> Gameplay: <ul> <li> Video: Correct (maybe some missing effects)</li> <li> Sound: Yes.</li> <li> Mouse: Ok.</li> </ul></li></ul></p><p> snapshots: <ul> <li><a href="http://62.93.166.115/tpm-1.jpg">http://62.93.166.115/tpm-1.jpg</a></li> <li><a href="http://62.93.166.115/tpm-2.jpg">http://62.93.166.115/tpm-2.jpg</a> (Probably some effect is missing here)</li> <li><a href="http://62.93.166.115/tpm-3.jpg">http://62.93.166.115/tpm-3.jpg</a></li></ul></p><p> <u>Grand Theft Auto III</u></p><p> CDROM: You need set the windows version to nt40, and use a modified EXE due to safedisc 2 protection.<br /> Additional wine patches: <ul> <a href="http://www.winehq.org/hypermail/wine-patches/2003/11/0000.html">http://www.winehq.org/hypermail/wine-patches/2003/11/0000.html</a><br /> <a href="http://62.93.166.115/d3d8_private.diff">http://62.93.166.115/d3d8_private.diff</a></ul> </p><p><ul> <li> Install: Yes (using native dlls for InstallShield 7)</li> <li> Gameplay: <ul> <li> Video: Correct (graphics glitches, missing effects and a bit slow) (You need disable in video settings the 5th option, or you will see the gfx 4 times together)</li> <li> Sound: Yes.</li> <li> Mouse: Ok during gameplay (probably not in the menu zone)</li> </ul></li></ul></p> <p> Snapshots: <ul> <li><a href="http://62.93.166.115/gta3-0.jpg">http://62.93.166.115/gta3-0.jpg</a></li> <li><a href="http://62.93.166.115/gta3-1.jpg">http://62.93.166.115/gta3-1.jpg</a> (where is the rain?)</li> <li><a href="http://62.93.166.115/gta3-2.jpg">http://62.93.166.115/gta3-2.jpg</a> (with the 5th option enabled)</li></ul></p><p> <u>Commandos 3: Destination Berlin Demo</u></p><p> CDROM: Using the original disc, not necessary any trick.<br /> Additional wine patches: <ul> <a href="http://www.winehq.org/hypermail/wine-patches/2003/11/0000.html">http://www.winehq.org/hypermail/wine-patches/2003/11/0000.html</a><br /> <a href="http://62.93.166.115/d3d8_private.diff">http://62.93.166.115/d3d8_private.diff</a></ul></p><p><ul> <li> Install: Yes (using native dlls for InstallShield 7)</li> <li> Gameplay: <ul> <li>Video: Correct (some graphics glitches in text windows). There is 2 stages for select in the demo, only the first one shows graphics, in the second you can heard the sound, but the screens remains to black.</li> <li> Sound: Yes.</li> <li> Mouse: Ok.</li> </ul></li></ul></p> <p> Snapshots: <ul><li> <a href="http://62.93.166.115/commandos3.jpg">http://62.93.166.115/commandos3.jpg</a></li></ul></p><p> <u>Haegemonian Demo (no playable demo).</u></p><p> CDROM: Using the original disc, not necessary any trick.<br /> Additional wine patches: <ul> <a href="http://62.93.166.115/device.diff">http://62.93.166.115/device.diff</a> -- (IDirect3DDevice8Impl_CopyRects)</ul> </p><p> <ul> <li> Install: Yes.</li> <li> Gameplay: <ul> <li> Video: Correct (missing some screens, but the 3D engine works very nice).</li> <li> Sound: Yes.</li> <li> Mouse: No mouse needed.</li> </ul></li></ul></p> <p> Snapshots: <ul> <li><a href="http://62.93.166.115/haegemoniam-1.jpg">http://62.93.166.115/haegemoniam-1.jpg</a></li> <li><a href="http://62.93.166.115/haegemoniam-2.jpg">http://62.93.166.115/haegemoniam-2.jpg</a></li></ul></p><p> <u>Anno 1602.</u></p><p> Notes: Using the original disc, not necessary any trick.<br /> Additional wine patches: <ul><a href="http://www.winehq.org/hypermail/wine-patches/2003/10/0274.html">http://www.winehq.org/hypermail/wine-patches/2003/10/0274.html</a></ul></p><p> <ul> <li> Install: Yes.</li> <li> Gameplay: <ul> <li> Video: Correct.</li> <li> Sound: Yes.</li> <li> Mouse: Ok.</li> </ul></li></ul></p> <p> Snapshots: <ul> <li><a href="http://62.93.166.115/a1602-1.jpg">http://62.93.166.115/a1602-1.jpg</a></li> <li><a href="http://62.93.166.115/a1602-2.jpg">http://62.93.166.115/a1602-2.jpg</a></li></ul></p><p> <u>Praetoriam Demo.</u></p><p> Notes: Using the original disc, not necessary any trick.<br /> Additional wine patches: No <ul> <li> Install: Yes (using native dlls for InstallShield 7)</li> <li> Gameplay: <ul> <li> Video: Missing some tittle screens, and problems with textures during gameplay. fixme:ddraw:Main_IDirect3DDeviceImpl_7_Load</li> <li> Sound: Yes, but some effects with noise.</li> <li> Mouse: No works correctly, moves only in range 1024x740, but it should be possible in range 1024x768.</li> </ul></li></ul></p> <p> Snapshots: <ul><li><a href="http://62.93.166.115/praetorians.jpg"> http://62.93.166.115/praetorians.jpg</a></li></ul></p></quote> <p>This prompted more discussion about Wine's support for games. At one point Raphael Junqueria remarked, <quote who="Raphael Junqueira"> And i have already a simple but working d3d9 prototype (who use a new d3dcore lib)</quote> Later in the week some of that new d3dcore arrive on wine=patches. </p> </section> <section title="Copy Protection Sucks" subject="copy protection - was: Re: Is it time for playing games on WINE?" archive="http://www.winehq.com/hypermail/wine-devel/2003/11/0063.html" posts="34" startdate="11/04/2003" enddate="11/08/2003" > <p>I remember back in the 80's the gaming industry discovered people could copy floppy disks. A few friends I used to spend countless hours figuring out how to get around the latest copy protection schemes. Ultimately we always discovered a solution - finding a cracked game hacked by some underground group or a way to use one of the popular game copying programs. Fast forward 15 years.. nothing has changed. Game manufacturers still use copy protection and it's still as useless as always. I doubt any 14 year old has a problem downloading the latest Grand Theft Auto cracked executable and burning it to a disk. In the ensuing discussion about gaming this week, Jason Edmeades made this remark:</p> <quote who="Jason Edmeades"><p> One other thought. At some point in time we will have to address copy protection. I dont want to get into legal discussions and I dont intend looking into it (yet), BUT would I be correct in saying that if someone worked out the first point at which copy protection fails, and codes a basic application which emulates this behaviour. Since this simple app works on windows, then someone else could then work on getting the basic program working under wine without being contaminated by knowledge of the internals of the copy protection itself? If this is the case, it would be a useful thing to put on the projects page. If the legality of this is dodgy, forget it - there are always hacks around, its just frustrating.</p></quote> <p>Zsolt Rizsanyi summed up the state of Wine being able to support Safedisk copy protection:</p> <quote who="Zsolt Rizsanyi"><p> The problem is that copy protection is usually implemented in drivers (*.sys files), which cannot be loaded by wine. </p><p> If I remember correctly then Laurent Pincharts safedisk patch consisted of the next logical parts: <ol> <li> fix a process startup race - if the child process was created suspended, then some wineserver messages got overwritten by new messages.</li> <li> add code to handle scsi cdrom ioctls (used by the copy protection to read some raw data from the cd).</li> <li> return EXCEPTION_PRIV_INSTRUCTION instead of EXCEPTION_ACCESS_VIOLATION when a some exception was raised by the user</li> <li> support shared memory beetween kernel space and user space (see SharedUserData in ntddk.h)</li> <li> implement SECDRV device handler</li> </ol></p><p> For all this to work it is necessary to set winver to nt40 (or some other from the nt line). </p><p> The current status is (AFAIK): <ul> <li>2 was committed to wine CVS.</li> <li>The problems behind 1 and 3 were fixed in the meanwhile.</li> <li>I have read a discussion about 4 on wine-devel. If I remember correctly it was aggreed that it should be added to wine sooner or later. But I dont see it yet in the CVS.</li> <li>5 is the only part which is related to safedisc. The SECDRV device handler is implemented in the secdrv.sys file which comes with the copy protected CD. The problem is that wine can't load .sys files. Laurent solved the issue by reimplementing the secdrv.sys in wine, but this brings fort the legal issues.</li> </ul></p></quote> <p>Some of the discussion delved into what it would take for Wine to include a builtin version of the Safedisk secdrv.sys driver. Roderick Colenbrander pointed out some of the pitfalls:</p> <quote who="Roderick Colenbrander"><p> It might be possible to reverse engineer the current safedisc 1 and 2 protections and include the code in wine. The problem is that the new version (a snapshot of it was used at the time in flashpoint) is less nice. Nowadays when you for example use a crack the game works or doesn't work. The new safedisc is really nasty. When you apply a crack (or perhaps our upcoming safedisc driver) the game starts up no matter if the crack is really correct or not. During the game you will know if the crack was correct or not. When you play using an incorrect crack the game will slowly become unplayable. For example the keys to finish the level will disappear or you can't aim anymore.. </p><p> Perhaps the "solution" is to write a wrapper to load secdrv.sys and friends. Perhaps in a way like that ntfs emulation project works (it uses a reactos kernel) or perhaps using an emulator like qemu. </p></quote> <p>Steven Edwards agreed it might be possible to load the native version,</p> <quote who="Steven Edwards"><p> Yes it should be possibe to adapt the work of Jan Kratochvil's Captive NTFS project to let you load the safedisk driver under Linux rather than the Windows NTFS driver. I have not tested loading the safedisk driver under ReactOS but I dont see why it wouldn't work. <ul><a href="http://www.jankratochvil.net/project/captive/"> http://www.jankratochvil.net/project/captive/</a></ul></p></quote> <p>Tom Wickline asked if Laurent Pinchart's work would ever make it into Wine. Alexandre had a firm "no" response:</p> <quote who="Alexandre Julliard"><p> None whatsoever, the driver "reimplementation" is clearly a DMCA violation. The proper way to do that is to somehow load the driver and let it perform all the checks it wants to perform; a dummy driver that returns magic values to bypass the checks is not acceptable. </p></quote> <p>Geoff Thorpe brought up some of the problems with ever including code like that in Wine:</p> <quote who="Geoff Thorpe"><p> As we've seen with encryption regulations in the past, the issue of control-circumvention law dissolves in the face of open-source software. Moreover, in the face of (L)GPL open-source software, it dissolves by *design* - you can not withhold source-code if you want to release binaries. IIRC, this was one of the major stumbling blocks for Transgaming and the Wine/LGPL debate - they have copyprotection support that they legally can not dream of releasing source for. Some argue that binaries are a form of source code anyway, and that you can "read" them in the sense that you can interpret and modify their operation. However, the lawyers seem reasonably comfortable with that argument - they call it reverse engineering and it's "bad"(tm). It is my personal opinion that this legal anomaly with copyleft is no accident - Microsoft (and the RIAA) lobby harder than most, and laws that are impossible to abide by in open source are "good" laws for lawyers and their preferred clients, and "bad" for disreputable communists (as we most surely must be if we don't feel like trading binaries commercially). But I digress. </p><p> What you've said about putting safedisk support into Wine is analogous to saying (a few years ago) that you could add an open-source encrypted filesystem to the O/S by only allowing the use of 40-bit cipher keys to satisfy export regulations. The fact that any dolt with gcc and a text-editor can type "s/40/128/g" makes that an insufficient defense, unfortunately. Somewhere in the callstack between the application and the kernel's CD driver needs to be something that is closed-source and not subject to trivial circumvention. I can't see how this can be done without requiring a DMCA violation in Wine, the O/S kernel, or requiring the copying of a closed-source driver that *itself* is irreplacable (choosing to load it from Wine and say "don't edit this Wine code to circumvent the commercial driver" in a C comment won't jive). Perhaps I've misunderstood something about the copy-protection model here, but the law itself seems to preclude a general open source solution, no matter how you slice it.</p></quote> <p>Shachar Shemesh didn't understand where the problem actually was, <quote who="Shachar Shemesh"> I don't get it. As far as I understand, so long as the code in the Wine archives does not allow running copied discs, we are not violating the DMCA. If someone else takes Wine code and modifies it, that's where the DMCA violation happens.</quote> Alexandre explained: </p><quote who="Alexandre Julliard"><p> The DMCA does not require copyright violation, what is illegal is "circumventing" the protection measure, it doesn't really matter if the replacement code has the same functionality or not. For example it's illegal to decrypt your own DVDs with DeCSS, but it's legal to do it with an "approved" player, even though they are of course both running the exact same algorithm. Yes it's absurd, but that's the way the law is written. </p><p> So the question is whether the code in question is "circumventing" the protection or not. I think you would have a hard time convincing someone that a dummy driver that returns magic values is not circumventing part of the copy protection, even if the resulting behavior is identical to the original. OTOH you can make a pretty good case that a generic "Windows driver loader" is not circumventing anything, it's just doing what any Windows replacement is supposed to do. </p></quote> <p>He went on to give a little more detail on why a Wine-specific driver would be a legal minefield:</p> <quote who="Alexandre Julliard"><p> By providing a replacement driver, you are circumventing a technical measure controlling access to the work. The fact is that without the driver you don't get access, and with the dummy Wine driver you do; since the dummy Wine driver is not an "authorized" way to get access it's circumvention. It doesn't matter at all whether it lets you use copied CDs or not. </p><p> Besides, I 1don't see how you could possibly prove that our implementation does exactly the same thing as the original one. Maybe the original doesn't only prevent copied CDs, maybe it also checks the phase of the moon or whatever, you have no way to make sure the protection is implemented correctly. </p></quote> <p>The thread pretty much ended after that. Several developers voiced their hatred of the DMCA. </p> </section> <section title="IPX Improvements" subject="Resend: Winsock ipx improvements" archive="http://www.winehq.com/hypermail/wine-devel/2003/11/0164.html" posts="1" startdate="11/08/2003" enddate="11/08/2003" > <topic>IO</topic> <p>Roderick Colenbrander sent some patches to improve IPX networking and noted:</p> <quote who="Roderick Colenbrander"><p> Here are some patches which improve winsock's ipx support. Using these patches games C&C Tiberian Sun, Red Alert (v3.x) and Red Alert II work over a lan. </p><p> First patches 1 and 3 add a new ipx related header. Patch 1 is the new header I made and patch 3 contains some extra structs submitted by vincent beron. </p><p> Patch 2 adds various missing pieces to the winsock code. For one of the new pieces of code a new wineserver call was required. In short the problem is that the way in which you can set the ipx packet type is different. On linux you can change the ipx packet type by setting an attribute of the linux ipx sockaddr structure. On windows it is changed using (WS_)setsockopt. The attribute that exists in the linux sockaddr structure doesn't exist on windows. </p><p> In our winsock dll all winsock structures are in the end converted to their linux equivalent. When we receive a request to change the ipx packet type we only have access to the winsock structure and because of this we can't change the packet type. (since it misses the attribute) To be able to get and set the packet type it needs to be stored in the wineserver. (Mike McCormack advised me this) </p></quote> </section></kc>