==============
 RW Analyze
==============
 Version 0.3b
 14.03.2004
==============

Email: support@steve-m.com
Web: http://www.steve-m.com

Thanks to Odie, KCow, Ashdexx, Hollower and the coders at gtaforums.com!


IMPORTANT!
~~~~~~~~~~

This program is freeware and can freely be spread, as long as this readme is
included and no changes to both the program and the readme were made!
I take no responsibility of any damage caused by the usage of this product!

RenderWare is a registered trademark of Canon Inc.
Other trademarks acknowledged.
http://www.csl.com
http://www.renderware.com


Installation and Uninstallation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

No installation necessary.
Just extract the files into one directory und delete them after use.


Content of this File
~~~~~~~~~~~~~~~~~~~~
- Introduction
- Features
- Annotation
- The Main Menu
- The Preference Settings Dialog (Options)
- The Popup Menu
- Hotkey Commands


Introduction
~~~~~~~~~~~~

RW Analyze may be used to obtain a detailed visualization and analyzation of
the contents of a RenderWare binary stream file, including the contents of
individual components and the hierarchical structure of the stream.
RenderWare Graphics is a powerful multi-platform 3D graphics library developed
by Criterion Software Ltd. and used (amongst others) by Rockstar North for
their 3D GrandTheftAuto games, such as GTA3, GTA: Vice City and probably
GTA: San Andreas.
Binary streams (like .rws, .anm, .bsp, .dff, .dma or .txd files) can contain
simple objects, or complex ones. Complex objects can contain other objects -
including other complex objects - so a stream's structure can be viewed as a
tree.
In RW Analyze (RWA) these objects are called sections, represented by an item
of the tree view in the main window, consisting of a colored dot followed by
the section name, its size, its offset and the section type ID. The dot
illustrates the state of a section:
  Blue  : complex section, contains child sections, but no data
  Green : simple section, contains data, but no child sections
  Orange: empty section, contains neither data nor child sections
  Red   : faulty section (errors occured while parsing)
Furthermore the tool offers various modification possibilities, check out the
next paragraph for a list of features.


Features
~~~~~~~~

- visualizes the hierarchical structured contents of a RW file
- contains a sophisticated content parsing engine with several error tracking
  functions
- enables to move, add, copy, change, clear, delete, import and export sections
- offers various data analyzation installments (hex view, data table, edit in
  (external) hex editor, and more...)


Annotation
~~~~~~~~~~

This tool has mainly been tested with .dff and .txd files from Grand Theft Auto
III and Vice City for PC. Since all data parsing functions have been developed
for these files, they might not work for files from other games and/or
platforms.
RWA is still in early beta state, not all functions work (correctly) and
data formats for only a few sections are implemented yet.


The Main Menu
~~~~~~~~~~~~~

 +-File
 | |
 | +-Open (Ctrl+O)
 | | loads a RenderWare binary stream file from an Open File dialog
 | |
 | +-Reopen (F5)
 | | loads the previously opened file
 | |
 | +-Open Recent
 | | displays a list of recently opened files
 | |
 | +-Save (Ctrl+S)
 | | updates the current file by overwriting the last save and reloads it
 | |
 | +-Save As
 | | saves the current file under a different file name
 | |
 | +-Save Copy As
 | | allows you to save a copy of the current file under a different file name,
 | | it does not change the name of the file being worked on
 | |
 | +-Close
 | | closes the file, clears all data and resets the program
 | |
 | +-Exit (Ctrl+X)
 |   closes RW Analyze
 |
 +-Tools
 | |
 | +-Options (F8)
 | | opens the Preference Settings dialog (see below)
 | |
 | +-Expert Settings
 | | |
 | | +-Don't parse geometry section
 | | | treats the geometry section as if it had no child sections (needs
 | | | reloading of the file)
 | | |
 | | +-Reload Section Types
 | |   reads the section names from RW_Secs.ini and updates the tree view
 | |
 | +-Find Section (Ctrl+F)
 | | scans the section hierarchy for the first occurrence of a section type
 | | specified in the Find Section dialog
 | |
 | +-Find Next Section (F3)
 | | scans the section hierarchy for the next occurrence of the selected
 | | section type
 | |
 | +-Commands
 | | |
 | | +-Change File Version
 | | | |
 | | | +-Other
 | | | | changes the file version to that you enter in the dialog
 | | | |
 | | | +-Show RW Version
 | | |   calculates the version of the RenderWare Graphics engine the current
 | | |   file is created for (still in beta status yet)
 | | |
 | | +-UserData to Frame Conversion
 | | | converts all user data sections (0x11F) within the frame list to frame
 | | | sections (0x0253F2FE) by using the first string
 | | |
 | | +-Recalculate Section Sizes
 | |   updates stored section size with their real sizes (done automatically
 | |   whenever one of the editing functions is used)
 | |
 | +-Save As Text
 | | saves the content of either the section tree, hex view, value list or data
 | | view to a text file
 | |
 | +-Associate With DFF Files
 | | makes an entry to the registry to set RW Analyze as the default
 | | application to open .dff files
 | |
 | +-New Instance
 |   runs a new instance of RW Analyze with the current file loaded
 |
 +-Help
   |
   +-View Readme (F1)
   | opens this file in your default text editor
   |
   +-Visit Homepage
   | opens steve-m.com in your default browser
   |
   +-Send Email
   | opens a prepared email in your default mailing application
   |
   +-About
     displays copyright and version information about your copy of RW Analyze


The Preference Settings Dialog (Options)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This dialog can be opened via the main menu "Tools|Options..." or by pressing
the hotkey F8.

  Decimal Numbers
  ---------------
  Allows you to define whether size, offset or section type values are shown as
  decimal or hexadecimal numbers. (checked=decimal, unchecked=hexadecimal)

  Hex View
  --------
  Enabled - defines, whether the hex view is used or not
  Absolute Offset - if enabled, offset values within the hex view are
    relative to the beginning of the file; when disabled they are relative to
    the offset of the current section (starting with zero)
  Max Sec Size - if a section is larger than this value, it won't be displayed
    in the hex view due to performance issues

  Recent Files
  ------------
  Clear Recent Files List - clears the list of recent files in the file menu;
    this identical to "File|Open Recent|Clear List"
  Recent Files in File Menu - the maximum number of files to be displayed in
    the recent files list; must be a number from 3 to 25
  Load last File on Start-up - if enabled, the most recent file is loaded when
    the application starts

  Section Tree
  ------------
  Colored Background - draws a colored bar according to the section state in
    the background of the currently selected section

  Value List
  ----------
  Skip detailed Data - if enabled, detailed values which occur in huge ammounts
    (like vertices, UV coords, colors, normals) won't be added to the value
    list due to performance issues

  Hex Editor
  ----------
  By clicking the Change button you can select your favourite hex editor which
  will be used to edit section data.


The Popup Menu
~~~~~~~~~~~~~~

This menu appears on right-clicking on a section in the tree view.

  Edit String
  -----------
  This item is only visible if the selected section is a string (0x02) or frame
  (0x0253F2FE). If visible, it is the default command when double-clicking a
  section.
  It opens an input dialog where you can enter or change a string. Empty
  strings are allowed. Note: string sections are always null-terminated and
  alligned to 4 byte.

  View in Hex Editor (F9)
  -----------------------
  The selected section will be exported to sec.tmp and opened in the hex editor
  defined in the options. After returning from the hex editor, you will be
  asked, whether you want to reimport the data from sec.tmp.
  If your answer is Yes, the data from sec.tmp will be imported again
  (replacing the old data) and then sec.tmp will be deleted.
  If your answer is No, sec.tmp will be deleted without being imported.
  And if you cancel the dialog, the temporary file won't be deleted.

  Expand Child Sections
  ---------------------
  Expands the section node to display all child sections (recursive).

  Collapse Child Sections
  -----------------------
  Collapses the section node to hide all child sections (recursive).

  Export Section Data (Ctrl+E)
  -------------------
  Exports the data of the selected section to a file.

  Import Section Data (Ctrl+I)
  -------------------
  Imports the data from a file and replaces the data of the selected section.

  Add Section (Ins)
  -----------
  Creates a new section of the chosen type as child of the selected section.

  Copy Section (Ctrl+C)
  ------------
  Creates a copy of the selected section. (Only works for data sections yet.)

  Change Section (F2)
  --------------
  Opens a dialog to change the section type of the selected section.

  Clear Section (Ctrl+Del)
  -------------
  Deletes all data of the selected section, so it will be empty.

  Delete Section (Del)
  --------------
  Deletes the selected section.

  Convert to Frame
  ----------------
  Only visible, if the selected section is user data (0x11F). Converts an user
  data section to a frame section (0x0253F2FE) by using the first string.

  Make Valid Skin Data
  --------------------
  Only visible, if the selected section is a skin (0x116) and the file version
  is 0x00000310. Does several patching functions needed for VC character
  creation, see tutorial on steve-m.com.

  Export IBM Data
  ---------------
  Only visible, if the selected section is a skin (0x116) and the file version
  is 0x0C02FFFF. Exports the inverse bone matrices to PlayerIBMs.bin.


Hotkey Commands
~~~~~~~~~~~~~~~

Ctrl+O   - Open file
F5       - Reopen file
Ctrl-S   - Save file
Ctrl-X   - Exit
F8       - Options
F4       - Switch parsing of geometry section
Ctrl+F   - Find section
F3       - Find next section
F1       - View readme (this file)

F9       - View selected section in hex editor
Ctrl+E   - Export data of selected section
Ctrl+I   - Import data of selected section
Ins      - Add section
Ctrl-C   - Copy section
F2       - Change section
Ctrl+Del - Clear section
Del      - Delete section

Clicking on the section type, size and offset values in the panel on the right
switches between decimal and hexadecimal numbers.

Double-Clicking on a section opens either the hex editor or the string editor.

To move a section use drag & drop.


History
~~~~~~~

Version 0.3 beta (14.03.2004)
- first public release



If there are any problems, questions, mistakes, bugs or something else simply
send an email! (support@steve-m.com)

Greetings

Steve