home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 February / PCWorld_2005-02_cd.bin / software / vyzkuste / pool / foobillard.exe / foobillard-3.0 / README.win32 < prev    next >
Text File  |  2004-04-23  |  12KB  |  292 lines

  1.  
  2.             FooBillard for Win32
  3.                        --==##############==--
  4.         Copyright (C) 2001-2004 Florian Berger
  5.                              
  6. --
  7.  
  8. Version 3.0 Win32 Release 1 port by:
  9. Kein-Hong Man (esq.) <mkh@pl.jaring.my>
  10.  
  11. --
  12.  
  13. PRELIMINARIES
  14.  
  15. If uncompressed normally (with folders preserved), the game should be
  16. ready to run. Instructions can be found in the README file, and the
  17. manual pages, foobillard.6. Pool, billard or carambol rules can be
  18. found quite easily by Googling.
  19.  
  20. FooBillard is licensed under GPL2, please see the README file for more
  21. information or the COPYING file for license information.
  22.  
  23. ** This port should be not considered an exact port, because certain
  24. features had to be disabled, left out or were not implemented for Win32
  25. platforms. **
  26.  
  27. --
  28.  
  29. NOTES ON BEHAVIOUR
  30.  
  31. For this Win32 port, FooBillard looks for data files in a subdirectory
  32. "data" relative to the location of the executable. User preferences are
  33. also saved in a configuration file, see below for more information.
  34.  
  35. For a usage summary of command line options, please see the stderr.txt
  36. file in the executable's directory generated by SDL's redirection. The
  37. icons are unofficial, merely a minor cosmetic addition for this port.
  38.  
  39. Display mode size and full screen toggle takes effect only when the
  40. game is terminated using the Quit menu option (or if the configuration
  41. is saved) and the game restarted.
  42.  
  43. Network play is untested. See below for more information.
  44.  
  45. --
  46.  
  47. NOTES ON RENDERING
  48.  
  49. If you find the frame rate when rendering reflections poor, switching
  50. off vertical sync might help a bit. Still, if you want the best visual
  51. quality, you will need a fast Nvidia graphics card with the appropriate
  52. capabilities. On a GeForce4 MX 440, rendering is much smoother with
  53. 16-bit colour (frame rate is much higher.)
  54.  
  55. FooBillard will silently fail if your graphics card can't do some nifty
  56. visual effect. To check the capabilities of your card as detected by
  57. FooBillard, see the text output in the file stderr.txt. OpenGL extended
  58. features that are used by FooBillard is reported, and if one or more is
  59. missing, then some of the high-quality visual effects will not work. If
  60. your card has a different but equivalent feature set, sorry, but that's
  61. the way the code was written, I don't know enough to code advanced
  62. OpenGL stuff.
  63.  
  64. --
  65.  
  66. CONFIGURATION FILE
  67.  
  68. The configuration file, .foobillardrc, is normally situated in the same
  69. directory where the executable lies, unless you are starting it with a
  70. shell that has a HOME environment variable installed. If HOME exists,
  71. then .foobillardrc is located in the HOME directory. .foobillardrc is
  72. read at the beginning, and is written to when the 'o' option is pressed,
  73. or when the user quits via the game menu. The configuration file will
  74. NOT be updated if the window's close button is pressed.
  75.  
  76. --
  77.  
  78. WHAT HAS BEEN FIXED IN FooBillard-3.0-Win32-1
  79.  
  80. * For changes from 2.9 to 3.0 for the canonical sources, please see the
  81.   file ChangeLog. The following are Win32-specific changes:
  82. * Multitextures (cloth effect) should work on cards with OpenGL drivers
  83.   that support it. This is ARB defined, so it isn't Nvidia-specific.
  84. * Rendered+Fresnel reflections works on Nvidia cards that can handle
  85.   the vertex programs ("GL_NV_vertex_program" feature).
  86. * Bump reflections should work on suitable Nvidia cards, but I have not
  87.   tested it (my generic card does not appear to handle texture shaders,
  88.   I am not a power user/gamer). If bump mapping works for your setup,
  89.   please drop me a line if you want.
  90.  
  91. WHAT HAS BEEN FIXED IN FooBillard-2.9-Win32-2
  92.  
  93. * Changing resolution takes effect the next time you run the game.
  94. * Full/windowed screen switching also works in the same way.
  95. * This port handles command line options. These options are remembered
  96.   if you quit the program using the main menu.
  97. * This port saves and restores user preferences.
  98.  
  99. WHAT STILL DOESN'T WORK OR DOESN'T WORK THAT WELL
  100.  
  101. * Network play is completely untested. See below for explanation.
  102. * When you use Alt-Tab to switch apps when in full screen mode, OpenGL
  103.   seems to write over the Alt-Tab popup icon window. This is a Win32
  104.   glitch on Win98, and I don't suppose it can be fixed.
  105. * When you use Alt-Tab to switch apps in any mode, your cue ball can
  106.   change. This is obviously incorrect behaviour; I have not tracked down
  107.   the problem.
  108. * The port seems quite stable, but it is NOT rock-solid.
  109. * Most font sizes does not change with resolution changes, so for lower
  110.   resolutions, some text might be drawn beyond the visible area. This
  111.   is normal behaviour for the Linux version. FooBillard is best run
  112.   at 800x600 or better.
  113.  
  114. --
  115.  
  116. LIBRARIES
  117.  
  118. This binary distribution contains the following libraries, many thanks to
  119. the GnuWin32 project (http://gnuwin32.sourceforge.net/). Using precompiled
  120. DLLs and libraries saved a lot of time and effort, and for that I am
  121. extremely grateful.
  122.  
  123. (a) FreeType 2. Freetype 2 is licensed under GPL2 (see the file COPYING).
  124.     (GnuWin32 freetype-2.1.5-bin.zip) The FreeType Web site is at
  125.     http://www.freetype.org/
  126. (b) libpng 1.2.5. (GnuWin32 libpng-1.2.5-1-bin.zip) The libpng Web site is
  127.     at http://www.libpng.org/
  128. (c) zlib 1.2.1. (GnuWin32 zlib-1.2.1-1-bin.zip)
  129.     The zlib Web site is at http://www.zlib.org/
  130. (d) SDL 1.2.7. Licensed under LGPL. Please see README_SDL.txt.
  131.     The SDL Web site is at http://www.libsdl.org/
  132. (e) libgw32c-0.4. (GnuWin32 libgw32c-0.4-lib.zip)
  133.     An additional C function library, for the getopt functions.
  134.  
  135. Since FooBillard is GPL software, static linking does not affect the
  136. licensing of the software, and is legal.  Static linking saves about 100K.
  137. Static linking used to introduce an audio glitch on my machine, a kind of
  138. scratchiness in the sound output. [Update 20040201] The audio glitch is
  139. caused by linking libgw32c before libmsvcrt. Adding -lmsvcrt before
  140. -lgw32c solves the problem.
  141.  
  142. SDL is still linked as a DLL and SDL.dll should always exist somewhere
  143. in the executable path when you attempt to run FooBillard.exe.
  144.  
  145. --
  146.  
  147. COMPILING
  148.  
  149. This port was compiled on MinGW 3.1.0-1 and MSYS 1.0.9. You will need the
  150. development libraries and DLL binaries for:
  151. (a) SDL 1.2.7
  152. (b) freetype-2.1.5 (bin, lib)
  153. (c) libpng-1.2.5 (bin, lib)
  154. (d) zlib-1.2.1 (bin, lib)
  155.  
  156. For FooBillard 3.0, the SDL version is 1.2.7 (it was previously 1.2.5).
  157. Make sure the scripts sdl-config and freetype-config works by testing them
  158. on the command line first. Successfully building the SDL test programs is a
  159. good indication that your setup is good. The libpng and zlib include files
  160. and library files should be within reach of gcc with your setup.
  161.  
  162. Makefile.mingw contains quite a number of fixes; the Makefile generated by
  163. the configure script will probably fail without fixes. The critical fixes
  164. are the library names to link. First generate a fresh Makefile to build the
  165. usual files that the configure script writes. This also builds dependency
  166. information in the .deps directory, which is required for the build process.
  167. Run the following in the source root directory:
  168.  
  169.     ./configure --enable-SDL
  170.  
  171. You will need to edit the tweaked Makefile, Makefile.mingw, in order to
  172. compile Foobillard. The things that need changing are all the user-
  173. specific absolute path references. Makefile.mingw has been simplified so
  174. that the changes are most likely the ones specified at the beginning of the
  175. script. If you want to modify Makefile.mingw, using WinMerge with a copy of
  176. a fresh Makefile might help, for comparison purposes.
  177.  
  178. To compile, run the following in the foobillard src/ directory:
  179.  
  180.     touch Makefile.mingw
  181.     make -f Makefile.mingw
  182.  
  183. Makefile.mingw needs to be more recent than config.status, hence the touch
  184. command, otherwise it balks and tries to rebuild itself, which would fail.
  185. 'm' is a shell script to save typing.
  186.  
  187. I have not tried compiling without SDL, because SDL is needed for sound,
  188. anyway. FooBillard can be built with Glut on Linux, but I have not reviewed
  189. the relevant source code for Glut when doing this port, so try it at your
  190. own risk.
  191.  
  192. Creating a completely Win32-specific version of FooBillard with perhaps,
  193. Direct3D is a non-trivial task, and I have no plans to do that. I plan to
  194. stick to the Linux code base as far as possible. It's better not to have a
  195. native Direct3D port, because unless there is a developer willing to
  196. maintain it on a long-term basis, the code will suffer from bit rot.
  197.  
  198. The distributed executable has been stripped in order to save download time.
  199. If you want to do development work on Foobillard on the Win32 platform,
  200. you'll have to roll your own executable.
  201.  
  202. --
  203.  
  204. NETWORKING PROBLEM
  205.  
  206. Currently, network play does not work because the network code has not
  207. been tested at all. It just links without errors. The option "hostaddr" is
  208. used as the host name for your machine from which FooBillard will call
  209. gethostbyaddr().
  210.  
  211. Although the net_socket.c compiles and links, its functionality has not
  212. been tested. There is no added code for Win32-specific sockets stuff, so
  213. if there is supposed to be some kind of initialization procedure, it is
  214. probable that the executable will not work.
  215.  
  216. I am not on a network where I can test FooBillard's multiplayer mode.
  217. Hopefully, this will be sorted out in a future release. If you are willing
  218. to debug this feature for Win32 machines, by all means. I'll gratefully
  219. accept a patch.
  220.  
  221. --
  222.  
  223. RESOLUTION/FULLSCREEN SWITCHING PROBLEM
  224.  
  225. On Win32, SDL+OpenGL need to be reinitialized when the screen mode is
  226. changed, whether resolution or fullscreen to windowed and vice versa.
  227. Doing the reinitialization in-game is not trivial, and I've spent
  228. quite a few hours attempting it without success. In the end, I think
  229. it's much easier to make the user restart the program in order to
  230. make the new settings take effect.
  231.  
  232. --
  233.  
  234. WHAT CHANGED FROM THE CANONICAL 3.0 SOURCES
  235.  
  236. This is a non-exhaustive list, but I think these are the major changes.
  237. Those marked with a * are different from the version 2.9 list.
  238.  
  239. Makefile.mingw
  240.     tweaked Makefile output from configure script
  241. netsocket.c
  242.     added Win32 winsock2.h include file handling
  243.     fixed time_us() function with SDL call
  244.     fixed constant define ECONNREFUSED
  245.     (untested, done in order to compile successfully only)
  246. png_loader.c
  247.     permanently enabled png compression option
  248. ball.c
  249.     included glext.h for Win32 only
  250.     fixed OpenGL extension handling to be enabled using flag*
  251. table.c
  252.     included glext.h for Win32 only
  253.     fixed OpenGL extension handling to be enabled using flag*
  254. options.h
  255.     disabled options_3D_winnertext, crashes in Win32?
  256.     added externs for OpenGL extended functions*
  257. options.c
  258.     added pointers for OpenGL extended functions*
  259. bumpref.c
  260.     fixed OpenGL extension handling to be enabled using flag*
  261. foobillard.rc
  262.     new Win32 resource file (icon, basic app info)
  263. foobillard.ico
  264.     new Win32 icon file (16x16x8, 32x32x4|8, 64x64x8 formats)
  265. helpscreen.c
  266.     added constants for defining help text sizes
  267. sys_stuff.c
  268.     added a call to set window and icon titles
  269.     largely disabled SDL video resizing function
  270.     fixed inclusion of SDL headers to use sdl-config method*
  271. billard3d.c
  272.     added handling for endianness (missing header file)
  273.     included glext.h for Win32 only
  274.     included libgw32c getopt header file
  275.     added convenient path functions (config file, data dir)
  276.     enabled option and config file handling for Win32
  277.     fixed time_us() function with SDL call
  278.     added code to remember resolution change
  279.     added function address loaders for OpenGL extensions*
  280.  
  281. --
  282.  
  283. Finally, my hats off to Florian Berger for this work of art. :)
  284.  
  285. --
  286.  
  287. Enjoy!!
  288.  
  289. Kein-Hong Man (esq.)
  290. Kuala Lumpur
  291. Malaysia 20040422
  292.