3 You may without charge, royalty or other payment, copy and
4 distribute copies of this work and derivative works of this work
5 in source or binary form provided that: (1)
6 you appropriately publish on each copy an appropriate copyright
7 notice; (2) faithfully reproduce all prior copyright notices
8 included in the original work (you may also add your own
9 copyright notice); and (3) agree to indemnify and hold all prior
10 authors, copyright holders and licensors of the work harmless
11 from and against all damages arising from use of the work.
13 You may distribute sources of derivative works of the work
14 provided that (1) (a) all source files of the original work that
15 have been modified, (b) all source files of the derivative work
16 that contain any party of the original work, and (c) all source
17 files of the derivative work that are necessary to compile, link
18 and run the derivative work without unresolved external calls and
19 with the same functionality of the original work ("Necessary
20 Sources") carry a prominent notice explaining the nature and date
21 of the modification and/or creation. You are encouraged to make
22 the Necessary Sources available under this license in order to
23 further the development and acceptance of the work.
25 EXCEPT AS OTHERWISE RESTRICTED BY LAW, THIS WORK IS PROVIDED
26 WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES OF ANY KIND, INCLUDING
27 BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OF FITNESS FOR A
28 PARTICULAR PURPOSE, MERCHANTABILITY OR TITLE. EXCEPT AS
29 OTHERWISE PROVIDED BY LAW, NO AUTHOR, COPYRIGHT HOLDER OR
30 LICENSOR SHALL BE LIABLE TO YOU FOR DAMAGES OF ANY KIND, EVEN IF
31 ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
37 Linux version 0.99.13 or above
39 FreeBSD-current or FreeBSD 1.1
41 To build Wine, first do a "./Configure" and then a "make". The
42 executable "wine" will be built. "wine" will load and run 16-bit
49 Wine requires you to have a file /usr/local/etc/wine.conf (you can
50 supply a different name when configuring wine) or a file called .winerc
51 in your homedirectory.
53 The formatstyle of this config file is just like a windows .ini file.
55 Here's an explanation of each section:
59 format: <driveletter> = <rootdirectory>
62 This section is used to specify the root directory of each `dos'drive
63 as windows' applications require a dos/mswindows based diskdrive &
66 If you mounted you dos-partition as /dos and installed microsoft windows
67 in c:\windows than you should specify c=/dos in the drives section.
71 format: windows = <directory>
74 Used to specify an different windows directory.
76 format: system = <directory>
77 default: c:\windows\system
79 Used to specify an different system directory.
81 format: temp = <directory>
84 Used to specify a directory where windows applications can store temporary
87 format: path = <directories separated by semi-colons>
88 default: c:\windows;c:\windows\system
90 Used to specify the path which will be used to find executables and DLL's.
92 format: systemresources = <filename>
95 Used to specify the name of sysres.dll, a dll which is used by wine itself.
99 format: com[12345678] = <devicename>
102 Used to specify the devices which are used as com1 - com8.
106 format: lpt[12345678] = <devicename>
109 Used to specify the devices which are used as lpt1 - lpt8.
113 format: file = <filename or CON when logging to stdout>
116 used to specify the file which will be used as logfile.
118 format: exclude = <message names separated by semicolons>
121 Used to specify which messages will be excluded from the logfile.
123 format: include = <message names separated by semicolons>
126 Used to specify which messages will be included in the logfile.
132 When invoking wine, you must specify the entire path to the executable,
135 For example: to run Windows' solitaire:
137 wine sol (using the searchpath to locate the file)
140 wine c:\\windows\\sol.exe (using a dosfilename)
142 wine /usr/windows/sol.exe (using a unixfilename)
144 note: the path of the file will also be added to the path when
145 a full name is supplied on the commandline.
147 Have a nice game of solitaire, but be careful. Emulation isn't perfect.
148 So, occassionally it will crash.
152 4. EXAMPLE CONFIGFILE
154 ----------------------------------------------------------------------------
162 system=c:\windows\system
164 path=c:\windows;c:\windows\system;c:\winapps\word\;c:\winapps\pctools
165 systemresources=./sysres.dll
177 Exclude=WM_TIMER;WM_SETCURSOR;WM_MOUSEMOVE;WM_NCHITTEST;WM_NCACTIVATE;WM_GETDLGCODE;
180 ----------------------------------------------------------------------------
185 The documentation for the build program is in the file build-spec.txt
192 If you successfully add anything, please send me a copy.
200 WHAT'S NEW with Wine-940602: (see ChangeLog for details)
202 - ABORT command added to debugger.
203 - Windows environment is now imported from the UNIX environment.
204 - Use of save unders and backing store are now the default. Resource
205 and command line options have been added to disable these things.
206 - Assorted new driver functions
208 - More metafile support
209 - and many many bug fixes!
211 WHAT'S NEW with Wine-940524: (see ChangeLog for details)
214 - and many many bug fixes!
216 WHAT'S NEW with Wine-940518: (see ChangeLog for details)
217 - debugger improvements
218 - bug fixes to get some dialog boxes working.
219 - skeleton for passing MCI functions.
220 - beginnings of metafile support.
221 - and many many bug fixes!
223 WHAT'S NEW with Wine-940510: (see ChangeLog for details)
224 - debugger improvements
226 - ShellAbout() and AboutDlgProc()
227 - and many many bug fixes!
229 WHAT'S NEW with Wine-940505: (see ChangeLog for details)
230 - faster color_stretch()
231 - SetSysMenu(), GetCursor(), GetDesktopWindow()
232 - WSAGetXbyY() now non-blocking
233 - and many many bug fixes!
235 WHAT'S NEW with Wine-940420: (see ChangeLog for details)
236 - new property functions
237 - new listbox and combo box functions
238 - GrayString() and CallGrayStringProc()
239 - and many many bug fixes!
241 WHAT'S NEW with Wine-940412: (see ChangeLog for details)
242 - menuing improvements
243 - drawing performance improvements
244 - beginnings of hooks
245 - MDI maximizing and tiling
246 - improvements in winsock implementation
247 - and many many bug fixes!
249 WHAT'S NEW with Wine-940405: (see ChangeLog for details)
250 - Mouse activation of menus working again
252 - SetDIBitsToDevice()
254 - int 10hm 25h and 26h
255 - in, inb, out, outb emulation
256 - and many many bug fixes!
258 WHAT'S NEW with Wine-940329: (see ChangeLog for details)
259 - MDI: child windows can be created, activated and cascaded.
261 - support for dithered brushes
262 - GetNearestColor(), RealizeDefaultPalette(),
263 GetSystemPaletteEntries(), and SelectPalette()
264 - System colors read from WIN.INI
265 - Keyboard menu manipulation (mouse is temporarily broken)
266 - GetFreeSystemResources()
267 - and many many bug fixes!
269 WHAT'S NEW with Wine-940322: (see ChangeLog for details)
270 - Speed improvements in bitmaps and mouse messages
271 - More MDI support. More to come next week...
272 - and many many bug fixes!
274 WHAT'S NEW with Wine-940315: (see ChangeLog for details)
275 - Beginnings of MDI support. More to come next week...
277 - and many many bug fixes!
279 WHAT'S NEW with Wine-940309: (see ChangeLog for details)
280 - New "exclude" and "include" filters for spy feature. See sample
281 wine.ini for details.
282 - -desktop and -name options (see ChangeLog)
283 - GetFreeSpace() and CreateIcon()
284 - and many many bug fixes!
286 WHAT'S NEW with Wine-940301: (see ChangeLog for details)
287 - NEW Configure script to set compile time options!
288 - Support for filesystems with short (less than 14 chars) filenames.
289 - Clipboard functions!
292 WHAT'S NEW with Wine-940223: (see ChangeLog for details)
295 - Desktop window support
299 WHAT'S NEW with Wine-940216: (see ChangeLog for details)
300 - Many many bug fixes
301 - Switched to using Imakefile's instead of Makefile's.
302 - Lot's of changes for libwine.a
304 WHAT'S NEW with Wine-940209: (see ChangeLog for details)
305 - Many many bug fixes
306 - Minor directory structure reorganization
307 - New GetModule*() functions.
309 - First stab at Wine as a library
311 WHAT'S NEW with Wine-940201: (see ChangeLog for details)
312 - Support for huge data structures.
314 - Many many bug fixes
316 WHAT'S NEW with version 0.8: (see ChangeLog for details)
317 - Eliminated Xt-dependent code. Thanks to Alexandre and Martin.
318 - EnumWindows() and EnumChildWindows()
319 - Activating and deactivating of windows.
320 - More work on system menus.
322 WHAT'S NEW with version 0.7: (see ChangeLog for details)
323 - Eliminated Xt-dependent code. Thanks to Alexandre and Martin.
325 - IsWIndowEnabled() and EnableWindow() now implemented.
326 - New command line options.
328 WHAT'S NEW with version 0.6: (see ChangeLog for details)
329 - Working towards elimination of Xt-dependent code. Thanks to
330 Alexandre and Martin.
332 - I added a rudimentary spy facility which can be turned
333 on from the wine.ini file. See the sample wine.ini
336 WHAT'S NEW with version 0.5: (see ChangeLog for details)
337 - Working towards elimination of Xt-dependent code.
339 - GetClassName() & GetClassInfo()
340 - Implemented loader relocation types 5 and 6.
342 WHAT'S NEW with version 0.4.14: (see ChangeLog for details)
343 - Bug fixes and enhancements
345 - Text caret functions
347 WHAT'S NEW with version 0.4.13: (see ChangeLog for details)
350 - More keyboard handling
351 - Polyline() and Polygon()
353 WHAT'S NEW with version 0.4.12: (see ChangeLog for details)
355 - New DOS file functions
356 - Experimental Imakefiles
358 WHAT'S NEW with version 0.4.11: (see ChangeLog for details)
360 - New cursor functions
361 - New file system handling
364 WHAT'S NEW with version 0.4.10: (see ChangeLog for details)
366 - More scroll bar functions
367 - More icon and cursor handling
369 WHAT'S NEW with version 0.4.9: (see ChangeLog for details)
372 - New resource functions
374 - Selector manipulation functions
377 WHAT'S NEW with version 0.4.7: (see ChangeLog for details)
378 - More dialog box functions
379 - More DOS interrupts
380 - NetBSD compatibility patches
382 WHAT'S NEW with version 0.4.5: (see ChangeLog for details)
385 - dialog box functions
386 - improvements to control windows
388 WHAT'S NEW with version 0.4.4: (see ChangeLog for details)
390 - New static control class
391 - Preliminary listbox, combobox and scrollbar controls
392 - System initialization file is now called "wine.ini", and
393 may be located in the user's current directory, the
394 user's home directory or any directory specified by
395 the WINEPATH environment variable.
396 - The loader now searches the directories specified by the
397 WINEPATH environment variable for programs and DLLs.
398 - Internal debugger now works on 386BSD.
400 WHAT'S NEW with version 0.4.3: (see ChangeLog for details)
402 - Resource loading now able to load DLL resources
403 - Button control now based on GDI calls
404 - Preliminary system color support
405 - Miscellaneous window functions
406 - Limited debugging facility (sometimes hangs)
408 WHAT'S NEW with version 0.4.2: (see ChangeLog for details)
410 - 32-bit callback functions allowed
412 - lstr* functions and ANSI<->OEM conversion functions.
414 WHAT'S NEW with version 0.4.1: (see ChangeLog for details)
416 - Memory usage changes.
418 WHAT'S NEW with version 0.4.0: (see ChangeLog for details)
419 - Wine now compiles and runs under NetBSD. Patches are
421 - Wine stat patches included. Add "-DWINESTAT" to the definition
422 of COPTS in the main Makefile to activate.
423 - Preliminary keyboard handling.
424 - Button control window implemented.
425 - many other new functions added.
427 WHAT'S NEW with version 0.3.1: (see ChangeLog for details)
428 - LineDDA() completed
430 - INT 1Ah implemented
431 - SOUND DLL implemented
432 - More of WIN87EM DLL implemented
433 - OpenFile() and friends implemented
435 WHAT'S NEW with version 0.3.0: (see ChangeLog for details)
437 - Text justification and underlining
439 - LoadBitmap() completed
440 - Code generated by the Borland compiler should now work
442 WHAT'S NEW with version 0.2.8: (see ChangeLog for details)
443 - Text functions from Alexandre
445 - Menu improvements from David
446 - Bug fixes and GetProcAddress() stub from me
448 WHAT'S NEW with version 0.2.7: (see ChangeLog for details)
449 - sol.exe gets further. I did some debugging and now solitaire
450 stops when it tries to call GetTextExtent(). Any volunteers?
451 - Many DC updates from Alexandre.
452 - Menu updates to support underlining characters from David Metcalfe.
454 WHAT'S NEW with version 0.2.6: (see ChangeLog for details)
455 - More region updates from Alexandre
457 WHAT'S NEW with version 0.2.5: (see ChangeLog for details)
458 - Regions implemented by Alexandre
459 - More menuing code from me
461 WHAT'S NEW with version 0.2.4: (see ChangeLog for details)
462 - Many improvements to GDI from Alexandre
463 - Many improvements to menu handling by me.
465 WHAT'S NEW with version 0.2.3: (see ChangeLog for details)
466 - Bug fixes with SendMessage() and PostMessage()
467 - Preliminary menu support
469 WHAT'S NEW with version 0.2.2: (see ChangeLog for details)
475 WHAT'S NEW with version 0.2.1:
476 - I have placed things into sub-directories. The organization is
477 not finalized. I imagine that the directory structure will
478 change as is necessary. Files in the ./misc directory need
479 to be split apart and placed in apropriate directories.
480 - Tons of code from Alexandre. He has constructed the framework
481 for handling GDI objects. He has also provided code for DCEs.
482 - Local heap functions have been completed.
483 - Bug fixes in global.c and win.c
484 - New function GlobalQuickAlloc() combines GlobalAlloc() and
485 GlobalLock() into a single function call.
486 - New patch kit for Linux 0.99 pl11 kernel. Thanks to Linus
487 who has graciously included our patches into the ALPHA patch
490 WHAT'S NEW with version 0.2.0:
491 - Alexandre Julliard has provided a replacement for the Tcl code.
492 The new code uses Xlib and Xt directly with no intervening
493 interpretted language. This should reduce the learning
494 curve for casual hackers.
495 - I changed all GLOBAL_ names to Global.
497 WHAT'S NEW with version 0.1.1:
498 - I have completed global memory allocation, but I don't like it.
499 It is not 100% compatible with Windows. I need some more kernel
500 modifications for 100% compatibility.
501 - Alexandre Julliard has provided written better emulation for
502 the Windows message queue.
504 WHAT'S NEW with version 0.1.0:
505 - Latest patches from Alexandre Julliard.
506 - minor bug fix in if1632.S
508 WHAT'S NEW with version 0.0.5:
509 - Patches from Alexandre Julliard. Some integration with Tcl.
510 - Generic interface for callback procedures. This will allow
512 - MakeProcInstance() has been implemented but untested.
514 WHAT'S NEW with version 0.0.4:
515 - Eric Youngdale modified wine.c and selector.c to allow loading
517 - Added global memory allocation routines (GlobalAlloc, GlobalFree,
519 - Bitmap resource loading into global memory.
521 WHAT'S NEW with version 0.0.3:
522 - Fixed bug with sector sizes.
523 - Registers at program startup are now set correctly.
524 - Segment fixups for relocatable-segment internal entry points.
525 - Fixed bug in DOS PSP structure.
526 - Some resource loading is done.
527 - Added "return" ordinal type to build program.
528 - Added comment capability to build program.
530 WHAT'S NEW with version 0.0.2:
532 - Again thanks to Eric Youngdale for some very useful comments.
533 - The Windows startup code created by Micrsoft C 7.0 now runs
535 - Added a new patch to the kernel to increase the usable size of
536 the ldt to the full 32 entries currently allowed.
537 - Imported name relocations are now supported.
538 - Source code for my infamous test program is now included.
539 - A handful of basic Windows functions are now emulated. See
540 "kernel.spec" for examples of how to use the build program.
542 WHAT'S NEW with version 0.0.1:
544 - Eric Youngdale contributed countless improvements in memory
545 efficiency, bug fixes, and relocation.
546 - The build program has been completed. It now lets you specify
547 how the main DLL entry point should interface to your emulation
548 library routines. A brief description of how to build these
549 specifications is included in the file "build-spec.txt".
550 - The code to dispatch builtin DLL calls is complete, but untested.