<commit_before><html><body bgcolor="#FFFFFF" text="#000000"><center><table><tr><td>
<!-- --------------------- This file is this wide -------------------------- -->
<center><img src="grrlib_logo.png" /></center>
<pre><b>

Table of Contents
-----------------

Introduction
...What is it?

Developing for the Wii
...How do I even start?

Downloading GRRLIB
...Where do I get it from?

Installing GRRLIB
...How do I get it to a useable state?

Using GRRLIB
...What essentials do I need to know to get going?

Upgrading to v4.1.0 From Previous Versions of GRRLIB
...I upgraded and now my programs won't compile properly!?

Error: guVector redefined
...How do I get rid of this error?

Using SVN
...

Credits
...Who do I thank for all this free stuff?

Licence
...When you say "free" do you actually mean something else?


Introduction
------------

GRRLIB is a C/C++ 2D Graphics library for Wii application developers.  It is
essentially a wrapper which presents a friendly interface to the Nintendo GX
core.

This document is written to be viewed with equal clarity in either a web browser
or a text editor.

As of v4.1.0, GRRLIB is supplied as a standard C/C++ library (aka. archive)
called 'libgrrlib'.  Because GRRLIB processes JPEG and PNG images, it requires
the installation of the 'libjpeg' and 'libpngu' libraries.  'libpngu', in turn,
requires 'libpng' and 'libpng' requires 'libz'.

libgrrlib          <- 2D graphics library
+-- libjpeg        <- JPEG image processor
+-- libpngu        <- Wii wrapper for libpng
    +-- libpng     <- PNG image processor
        +-- libz   <- Zip (lossless) compsression (for PNG compression)


Developing for the Wii
----------------------

Do not progress until you have installed and configured devkitPro.  Guides are
and assistance are available at http://forums.devkitpro.org

If you have just performed a clean (re)install on your Windows PC, be sure to
reboot before you continue.


Downloading GRRLIB
------------------

You are invited to use "the latest SVN trunk version" of GRRLIB at all times.
There is a simple guide to "Using SVN" later in this document.

This document will presume that you have downloaded "the latest SVN trunk
version" to a directory called  C:\grr\trunk

Installing GRRLIB
-----------------

This guide is for Windows.  If you are using Linux, I am going to presume you
are smart enough to convert these instructions.

GRRLIB  is supplied as source code.
libjpeg is supplied as a precompiled library *1
libpngu is supplied as source code
libpng  is supplied as a precompiled library
libz    is supplied with devkitpro (Ie. preinstalled)

*1 The version of libjpeg supplied with GRRLIB v4.1.0 contains bug fixes not
   available in the official release.  If you can track down the original
   author, please tell him about these fixes.

Because of the way dependancies work, the libraries must be installed in reverse
order.

libz comes preinstalled with devkitPro, so we can move directly to libpng...

To install libpng *2
  c:
  cd \grr\trunk\GRRLIB\lib\png
  make install

Next up the list is libpngu *2
  c:
  cd \grr\trunk\GRRLIB\lib\pngu
  make clean
  make all
  make install

Next up the list is libjpeg *2 *3
  c:
  cd \grr\trunk\GRRLIB\lib\jpeg
  make install

*2 A Windows batch-file and a Linux shell-script are included which will
   install the libpng, libpngu and libjpeg libraries in a single command:
     c:
     cd \grr\trunk\GRRLIB\lib
     install     <- If you are using Linux, type `./install.sh` instead

*3 The version of libjpeg supplied with GRRLIB v4.1.0 contains bug fixes not
   available in the official release.

After all three image processing libraries are installed, we can now install
libgrrlib:
  c:
  cd \grr\trunk\GRRLIB\GRRLIB
  make clean
  make all
  make install


Using GRRLIB
------------

After everything is installed, simply put
    #include &lt;grrlib.h>     <!-- #include <grrlib.h> -->
at the top of your .c file and use the functions as required

You will also need to add
    -lgrrlib -ljpeg -lpngu -lpng -lz
to the libs line in your makefile
...Remember the order of the libraries is critical.  You may (need to) insert
other libraries in the middle of the list, you may need to add others to the
start, or even the end - but do _not_ change the order of the libraries shown
here.

You do NOT need to place /anything/ in your application directory.

If you would like to see a working example of this, you can look at the example
found in: C:\grr\trunk\examples\bluechip\composition
...This example also includes a "Makefile" which tries to make it clear what is
happening (unlike the more comprehensive cross-platform Makefile supplied with
the devkitPro 'template' application).


Upgrading to v4.1.0 From Previous Versions of GRRLIB
----------------------------------------------------

Older versions of GRRLIB, required a line such as:
  #include "../../../GRRLIB/GRRLIB/GRRLIB.h"
...to be placed at the top of each C file which uses GRRLB.
Because GRRLIB is now installed as a system library, this must be replaced with:
  #include &lt;grrlib.h>     <!-- #include <grrlib.h> -->

Older versions of GRRLIB required the 'GRRLIB.h' and 'GRRLIB.c" files to be
present in every project which uses GRRLIB.
Because GRRLIB is now installed as a system library, these files are no longer
required and must be erased.
*WARNING* Be careful if you have edited (either of) these files.

Older versions of GRRLIB "passed 'structs'" and therefore Textured Images were
defined with:
  GRRLIB_texImg  tex1, tex2;
Because GRRLIB now "passes 'pointers'" these definitions should be changed to:
  GRRLIB_texImg  *tex1, *tex2;

With older versions of GRRLIB if the programmer (you) required access to the
mode and frame information, you were required to add one or more of the
following three lines:
  extern GXRModeObj  *rmode;
  extern void        *xfb[2];
  extern u32         fb;
Because GRRLIB now does this for you automatically, these lines must be removed
from your code.


Error: guVector redefined
-------------------------

If you get this error, you are probably using a version of libogc more recent
than the released v1.7.1a.

In the libogc SVN revision 3650 Vector was renamed to guVector "to avoid
collisions"  ...also Quaternion was renamed to guQuaternion - but GRRLIB does
not use these!

The main codebase of GRRLIB has been updated to reflect this change.
But until the new libogc is officially released, if you are using a version of
libogc later than v1.7.1a/svn3649, you will need to add:
  -DNOGUFIX
to the compiler flags (CFLAGS) in your makefile

When the libogc changes are officially released, this *temporary fix* should be
removed [see grrlib.h, line 50ish]
The requirement for -DNOGUFIX will be deprecated, but its lingering presence
will not be a hinderance

Thanks to Nicksasa for reporting this problem


Using SVN
---------

SVN stands for "SubVersioN" ...No it doesn't mean much to me either.

It allows the developers to submit changes to the code in such a way that
these changes can be easily monitored, quickly merged together with other
changes. and (if necessary) reverted.

It also allows the power-users to gain access to the latest (often "in-test")
features.

SVN is classically divided in to three chunks:
trunk    - The main development & release code.
branches - Sometimes a developer may spend a week-or-more making their changes,
           so (s)he will work in a copy of the code until the changes are
           approved by the project leader ...then the changes are "merged" back
           in to trunk.
tags     - These are just copies of the code at critical points, such as
           official releases.
GRRLIB conforms to this official guideline.

To obtain the "cutting edge" codebase (ie. the latest in SVN) you need an SVN
tool ...The same as: if you want to view a web page, you need a web browser

For Windows you will choose: TortoiseSVN
For Debian  you will choose: apt-get install subversion
For others  you will need to do a bit of research (I only use Debian & Windows)

Windows:
  Create a directory to hold the code (Eg. C:\grr)
  Right click it and choose "svn checkout"
  Enter the URL of the SVN 'repository':  http://grrlib.googlecode.com/svn/
  Click the [...] button and choose the trunk*
  Leave advanced options alone (Ie. fully recursive, head)
  Hit OK

Linux:
  Create a directory to hold the code (Eg. `mkdir -p /home/user/src/grr`)
  Change to that directory            (Eg. `cd /home/user/src/grr`)
  type `svn checkout http://grrlib.googlecode.com/svn/trunk/ grrlib-read-only`*

* You may choose to check-out any part of the repository you wish, but if you
  venture outide 'trunk' you are likely to get old or broken code.

If you network connection dies half-way through the download
  Windows: ...simply right-click the directory again and choose "SVN Update"
  Linux:   ...Simply type `svn update`

You may also perform an "update" any time you like to get the latest & greatest
code changes.  But be warned, if you have edited the GRRLIB source code things
can (and often do) get messy.  The best help you can get about this is probably
here:  http://svnbook.red-bean.com/en/1.1/svn-book.html#svn-ch-3-sect-5.4


Credits
-------

Project Leader : NoNameNo
Documentation  : Crayon, BlueChip
Lead Coder     : NoNameNo,
Support Coders : Crayon, Xane, DragonMinded, BlueChip
Advisors       : RedShade, JESPA


Licence
-------

GRRLIB is released under the MIT Licence.  If we had chosen the GPL licence you
would be +forced+ (legally required) to release your source code.  But in the
spirit of "free as in FREE" we have left you with the +option+ to release your
source code.

We do request that you tell others about us by naming our library (GRRLIB) in
the credits of your game/application.  And, if you choose to do that, we
encourage you to use our logo to achieve it; You can find our logo here:
C:\grr\trunk\grrlib_logo.png
and here:
http://grrlib.santo.fr/wiki/images/logo.png

This is the official license text
--------------------------------------------------------------------------------
Copyright (c) 2009 The GRRLIB Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
--------------------------------------------------------------------------------

[BlueChip]

</b></pre></td></tr></table></center></body></html>
<commit_msg>Corrected documentation regarding libfat<commit_after><html><body bgcolor="#FFFFFF" text="#000000"><center><table><tr><td>
<!-- --------------------- This file is this wide -------------------------- -->
<center><img src="grrlib_logo.png" /></center>
<pre><b>

Table of Contents
-----------------

Introduction
...What is it?

Developing for the Wii
...How do I even start?

Downloading GRRLIB
...Where do I get it from?

Installing GRRLIB
...How do I get it to a useable state?

Using GRRLIB
...What essentials do I need to know to get going?

Upgrading to v4.1.0 From Previous Versions of GRRLIB
...I upgraded and now my programs won't compile properly!?

Error: guVector redefined
...How do I get rid of this error?

Using SVN
...

Credits
...Who do I thank for all this free stuff?

Licence
...When you say "free" do you actually mean something else?


Introduction
------------

GRRLIB is a C/C++ 2D Graphics library for Wii application developers.  It is
essentially a wrapper which presents a friendly interface to the Nintendo GX
core.

This document is written to be viewed with equal clarity in either a web browser
or a text editor.

As of v4.1.0, GRRLIB is supplied as a standard C/C++ library (aka. archive)
called 'libgrrlib'.  Because GRRLIB processes JPEG and PNG images, it requires
the installation of the 'libjpeg' and 'libpngu' libraries.  'libpngu', in turn,
requires 'libpng' and 'libpng' requires 'libz'.  GRRLIB also has FileIO
functions to allow real-time loading and saving of graphical data, and thus also
requires 'libfat'.

libgrrlib          &lt;- 2D graphics library
+-- libfat         &lt;- File I/O
+-- libjpeg        &lt;- JPEG image processor
+-- libpngu        &lt;- Wii wrapper for libpng
    +-- libpng     &lt;- PNG image processor
        +-- libz   &lt;- Zip (lossless) compsression (for PNG compression)


Developing for the Wii
----------------------

Do not progress until you have installed and configured devkitPro.  Guides are
and assistance are available at http://forums.devkitpro.org

If you have just performed a clean (re)install on your Windows PC, be sure to
reboot before you continue.


Downloading GRRLIB
------------------

You are invited to use "the latest SVN trunk version" of GRRLIB at all times.
There is a simple guide to "Using SVN" later in this document.

This document will presume that you have downloaded "the latest SVN trunk
version" to a directory called  C:\grr\trunk

Installing GRRLIB
-----------------

Note: Discussion is underway for 'libpng' and 'libjpeg' to be included with
      devkitPro - obviously, this means that the "bugfix" included here will
      be officially addressed and the "precompiled" libraries will /not/ require
      installation [03-Sept-2009]

This guide is for Windows.  If you are using Linux, I am going to presume you
are smart enough to convert these instructions.

GRRLIB  is supplied as source code.
libjpeg is supplied as a precompiled library *1
libpngu is supplied as source code
libpng  is supplied as a precompiled library
libz    is supplied with devkitpro (Ie. preinstalled)
libfat  is supplied with devkitpro (Ie. preinstalled)

*1 The version of libjpeg supplied with GRRLIB v4.1.0 contains bug fixes not
   available in the official release.  If you can track down the original
   author, please tell him about these fixes.

Because of the way dependancies work, the libraries must be installed in reverse
order.

libz comes preinstalled with devkitPro, so we can move directly to libpng...

To install libpng *2
  c:
  cd \grr\trunk\GRRLIB\lib\png
  make install

Next up the list is libpngu *2
  c:
  cd \grr\trunk\GRRLIB\lib\pngu
  make clean
  make all
  make install

Next up the list is libjpeg *2 *3
  c:
  cd \grr\trunk\GRRLIB\lib\jpeg
  make install

*2 A Windows batch-file and a Linux shell-script are included which will
   install the libpng, libpngu and libjpeg libraries in a single command:
     c:
     cd \grr\trunk\GRRLIB\lib
     install     &lt;- If you are using Linux, type `./install.sh` instead

*3 The version of libjpeg supplied with GRRLIB v4.1.0 contains bug fixes not
   available in the official release.

After all three image processing libraries are installed, we can now install
libgrrlib:
  c:
  cd \grr\trunk\GRRLIB\GRRLIB
  make clean
  make all
  make install


Using GRRLIB
------------

After everything is installed, simply put
    #include &lt;grrlib.h>     <!-- #include <grrlib.h> -->
at the top of your .c file and use the functions as required

You will also need to add
    -lgrrlib -ljpeg -lpngu -lpng -lz
to the libs line in your makefile
...Remember the order of the libraries is critical.  You may (need to) insert
other libraries in the middle of the list, you may need to add others to the
start, or even the end - but do _not_ change the order of the libraries shown
here.

You do NOT need to place /anything/ in your application directory.

If you would like to see a working example of this, you can look at the example
found in: C:\grr\trunk\examples\bluechip\composition
...This example also includes a "Makefile" which tries to make it clear what is
happening (unlike the more comprehensive cross-platform Makefile supplied with
the devkitPro 'template' application).


Upgrading to v4.1.0 From Previous Versions of GRRLIB
----------------------------------------------------

Older versions of GRRLIB, required a line such as:
  #include "../../../GRRLIB/GRRLIB/GRRLIB.h"
...to be placed at the top of each C file which uses GRRLB.
Because GRRLIB is now installed as a system library, this must be replaced with:
  #include &lt;grrlib.h>     <!-- #include <grrlib.h> -->

Older versions of GRRLIB required the 'GRRLIB.h' and 'GRRLIB.c" files to be
present in every project which uses GRRLIB.
Because GRRLIB is now installed as a system library, these files are no longer
required and must be erased.
*WARNING* Be careful if you have edited (either of) these files.

Older versions of GRRLIB "passed 'structs'" and therefore Textured Images were
defined with:
  GRRLIB_texImg  tex1, tex2;
Because GRRLIB now "passes 'pointers'" these definitions should be changed to:
  GRRLIB_texImg  *tex1, *tex2;

With older versions of GRRLIB if the programmer (you) required access to the
mode and frame information, you were required to add one or more of the
following three lines:
  extern GXRModeObj  *rmode;
  extern void        *xfb[2];
  extern u32         fb;
Because GRRLIB now does this for you automatically, these lines must be removed
from your code.


Error: guVector redefined
-------------------------

If you get this error, you are probably using a version of libogc more recent
than the released v1.7.1a.

In the libogc SVN revision 3650 Vector was renamed to guVector "to avoid
collisions"  ...also Quaternion was renamed to guQuaternion - but GRRLIB does
not use these!

The main codebase of GRRLIB has been updated to reflect this change.
But until the new libogc is officially released, if you are using a version of
libogc later than v1.7.1a/svn3649, you will need to add:
  -DNOGUFIX
to the compiler flags (CFLAGS) in your makefile

When the libogc changes are officially released, this *temporary fix* should be
removed [see grrlib.h, line 50ish]
The requirement for -DNOGUFIX will be deprecated, but its lingering presence
will not be a hinderance

Thanks to Nicksasa for reporting this problem


Using SVN
---------

SVN stands for "SubVersioN" ...No it doesn't mean much to me either.

It allows the developers to submit changes to the code in such a way that
these changes can be easily monitored, quickly merged together with other
changes. and (if necessary) reverted.

It also allows the power-users to gain access to the latest (often "in-test")
features.

SVN is classically divided in to three chunks:
trunk    - The main development & release code.
branches - Sometimes a developer may spend a week-or-more making their changes,
           so (s)he will work in a copy of the code until the changes are
           approved by the project leader ...then the changes are "merged" back
           in to trunk.
tags     - These are just copies of the code at critical points, such as
           official releases.
GRRLIB conforms to this official guideline.

To obtain the "cutting edge" codebase (ie. the latest in SVN) you need an SVN
tool ...The same as: if you want to view a web page, you need a web browser

For Windows you will choose: TortoiseSVN
For Debian  you will choose: apt-get install subversion
For others  you will need to do a bit of research (I only use Debian & Windows)

Windows:
  Create a directory to hold the code (Eg. C:\grr)
  Right click it and choose "svn checkout"
  Enter the URL of the SVN 'repository':  http://grrlib.googlecode.com/svn/
  Click the [...] button and choose the trunk*
  Leave advanced options alone (Ie. fully recursive, head)
  Hit OK

Linux:
  Create a directory to hold the code (Eg. `mkdir -p /home/user/src/grr`)
  Change to that directory            (Eg. `cd /home/user/src/grr`)
  type `svn checkout http://grrlib.googlecode.com/svn/trunk/ grrlib-read-only`*

* You may choose to check-out any part of the repository you wish, but if you
  venture outide 'trunk' you are likely to get old or broken code.

If you network connection dies half-way through the download
  Windows: ...simply right-click the directory again and choose "SVN Update"
  Linux:   ...Simply type `svn update`

You may also perform an "update" any time you like to get the latest & greatest
code changes.  But be warned, if you have edited the GRRLIB source code things
can (and often do) get messy.  The best help you can get about this is probably
here:  http://svnbook.red-bean.com/en/1.1/svn-book.html#svn-ch-3-sect-5.4


Credits
-------

Project Leader : NoNameNo
Documentation  : Crayon, BlueChip
Lead Coder     : NoNameNo,
Support Coders : Crayon, Xane, DragonMinded, BlueChip
Advisors       : RedShade, JESPA


Licence
-------

GRRLIB is released under the MIT Licence.  If we had chosen the GPL licence you
would be +forced+ (legally required) to release your source code.  But in the
spirit of "free as in FREE" we have left you with the +option+ to release your
source code.

We do request that you tell others about us by naming our library (GRRLIB) in
the credits of your game/application.  And, if you choose to do that, we
encourage you to use our logo to achieve it; You can find our logo here:
C:\grr\trunk\grrlib_logo.png
and here:
http://grrlib.santo.fr/wiki/images/logo.png

This is the official license text
--------------------------------------------------------------------------------
Copyright (c) 2009 The GRRLIB Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
--------------------------------------------------------------------------------

[BlueChip]

</b></pre></td></tr></table></center></body></html>

{'fraction_non_alphanumeric': 0.09301935104730723, 'fraction_numerical': 0.0055408638710489864, 'mean_word_length': 2.783989834815756, 'pattern_counts': {'":': 0, '<': 57, '<?xml version=': 0, '>': 55, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 12, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5057090', 'n_tokens_mistral': 7223, 'n_tokens_neox': 6696, 'n_words': 3373}