-----------------------------------
-----------SGE Release 4-----------
-----------------------------------
---v1.02 (C)2001 Jonathan Pearce---
-----------------------------------

[ Table of Contents ]
---> How to Contact Me!
---> Introduction / Comments
---> Changes!!!!!!
---> License
---> Details on the .SGE File Format
  \---> Details on Item Masks
---> Thanks / Greetings

[ How to Contact Me! ]

E-mail: d3jp@hotmail.com
ICQ: #14200087
Web Page: http://www.jagerman.com/~jpearce
Message Board: http://www.jagerman.com/~jpearce/ikonboard/ikonboard.cgi

Please, no ROM Requests... =-)

[ Introduction / Comments ]
SGE is a save game editor. It can be used for emulation save states, or pc
games. Any file that can be edited in order to cheat, can be edited with this
program. I'm not a great README file creator, so bear with me here. If someone
would like to take a leap, and create a readme file for me, go right ahead.
I'm fluent in english and french, so feel free to send me e-mail in either
language. I am still searching for bugs and new features, along with a better
gui design [ thus, the version 0.95 ] so new features can be expected when I
get the time to do so...

This program was developed in Microsoft Visual Basic 6.0. The executables
are compressed using UPX [ 10% of normal size in non-easter-egg builds ].
I use HIEW: Hacker's View release 6.02 (c)SEN, Kemerovo 1991-1999 to find hex
values for save state files, and on occasion the dos 'FC' command. To find
names in save state files that aren't plain-text, I use the handy utility
SEARCHR [ Dejap Translations Utility, available at www.zophar.net ]. The about
logo was created in Paint Shop Pro 7... Any other questions about utilities
used?

-- I still need new Ideas for new Programs, games you'd like Save State
Editors for, and I'd like some feedback about the program...

-- When The next Version Appears, I'm going to have a new Easter Egg or Two
Inside, although, might there be one or two in there now...? [ In case I
don't manage the Easter Deadline ]

-- The *!&#%@$#%! Breath of Fire 1 Programmers should be Shot out of a
cannon for the way they programmed the items into the Game. Why, oh why did
you guys Bank the Items the way you did... [Anyone that wants to know what I
mean, you'll see soon when I release a BOF1 Save State Editor... ]

[ Changes ]

1.02[ April 15, 2001 ]
-- Fixed Quadint Bug [ moved a 'v' to a 'p' and vice versa in the code ]

1.01[ April 15, 2001 ]
-- v1.00? What v1.00?
-- Easter Release!
-- Bugs, Bugs, Bugs... I went through the code from top to bottom... There
shouldn't be any bugs in this release!
-- Rewrote portions of the code to make it more compatible with further
additions to the code.
-- Expect new functions in the next little while. Namely a 'Text' function
to allow name editing, and a single choice function to allow codes that are
either on, or not... If 'not' is chosen, no change will be made to the save
file at that spot. When the 'next little while' is is anyone's guess.
-- My PGP Public Key has been included in the .ZIP file. If you want to use
it, go right ahead.

0.99[ April 9, 2001 ]
-- Can you say Bugs? *Splat* 3 or 4 bugs involving SGE have been fixed.
Two were in the Byte->Bit functions and the other two were in the Multiple
Integer Functions... You're never sure until you test every data file.
-- A zip file containing an example of an SGE data file and of an SGE item
file has been added to the zip archive. Thanks to UGEtab for this addition.
I'll try to update it to include all the new features soon, unless UGEtab
beats me to it.
-- A Blank Item File has been added to the SGE Archive
-- The readme.txt file has again been updated, thanks to UGEtab.  I'm a
programmer, not a readme guy. 
-- Hopefully the next release won't be a bug release, and will be named
1.00...

0.97 [ April 8, 2001 ]
-- Updated Readme File with Comments from UGEtab
-- Added 4 new Data Types
----> DualInt (2 Integers In one Value)
----> TripleInt (3 Integers)
----> QuadInt (4 Integers)
----> Bits (Allows 1 Byte to be edited bit by bit)

0.96 [ April 6, 2001 ]
-- Was to be released in February, but I didn't get the time, and I needed
to kill some bugs found...
-- Added 9 New Item Masks ( I didn't Realize It Was Possible to Run out of
the Initial 36) for a total of 45 [ Need more? Tell me, I'll find some more
character codes to use... ]
-- Changed the program so that it saves settings to the registry ( Problems?
Hurry up and tell me... )
-- Bug Fix! I accidentally deleted a word, and thereby screwed one of the
paths. Oops.
-- Added About Screen! Looks kinda nice.
-- Added Protection to the 'Beta Builds' only. This means that Beta Builds of
SGE can't be redistributed as easily. [ Although, the protection isn't
foolproof, none are... ]
-- Easter Egg Time!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[ License ]

This program is freeware and can be distributed freely as long as it is not
modified or sold and ROMs are not packaged with the program. If you wish to
mirror a copy of this program on your web site/ftp server or include this
program as part of a collection of utilities, please contact me at
d3jp@hotmail.com These readme.txt and license.txt files must be included
with the executable. When you use this software you do so at your own risk.

DO NOT E-MAIL ME REGARDING ROM IMAGES, WHERE TO GET THEM, HOW TO DUMP
CARTRIDGES, ETC. ANY OF THESE E-MAILS WILL BE FORWARDED TO VARIOUS PLACES
DEPENDING ON WHAT MY MOOD IS. MAYBE I'LL OPEN A PERSONAL "WALL OF LAME"

[ .SGE File Format ]

The SGE file format is very simple, and was made with easy creation and
editing in mind. This also allows it to be highly compressible.

Every SGE file _SHOULD_ start with the &info& tag. This tag is followed by
5 lines of information.

Information Tag
<------------------------->
|&info&                   | <--- This defines that this is an "Info" tag.
|Romancing Sa-Ga 3        | <--- Game Name
|SNES                     | <--- Game System
|ZSNES .ZST               | <--- Emulator Used & File Format(ZSnes .ZS?, Genecyst .GS?...)
|0.75                     | <--- Patch File Version
|Jonathan Pearce          | <--- Patch File Author
<------------------------->

From Here on in, you can select from a variety of other commands.
Use ""'s to enclose any lines containing commas.

Separator Tag
<------------------------->
|@sepr@                   | <--- This defines this as a "Seperator"
|Items                    | <--- Short Description
|Items and Item Counts    | <--- Long Description
<------------------------->

*When converting Hex Values to Decimal Values, remember to add 1, because
Hex Value 00 is equivalent to Decimal Value 01*

Value Tag - Integer Value [Max: 256]
<------------------------->
|@valu@                   | <--- This defines this as a "Value"
|int                      | <--- Signifies this is an integer value
|Item 1 - Item            | <--- Short Value Description
|This modifies the firs...| <--- Long Value Description
|65342                    | <--- Decimal Offset in File
|0                        | <--- Reserved Field.
<------------------------->

Value Tag - Dual Integer Value [Max: 65536]
<------------------------->
|@valu@                   | <--- This defines this as a "Value"
|dualint                  | <--- Signifies this is a two byte integer value
|Item 1 - Item            | <--- Short Value Description
|This modifies the firs...| <--- Long Value Description
|65342|65343              | <--- Decimal Offset in File
|0                        | <--- Reserved Field.
<------------------------->

Value Tag - Triple Integer Value [Max: 16777216]
<------------------------->
|@valu@                   | <--- This defines this as a "Value"
|tripleint                | <--- Signifies this is a 3 byte integer value
|Item 1 - Item            | <--- Short Value Description
|This modifies the firs...| <--- Long Value Description
|65342|65343|65344        | <--- Decimal Offsets in File [Lo Value|Med Value|Hi Value]
|0|0|0                    | <--- Initial (0) Value
<------------------------->

Value Tag - Quadruple Integer Value [Max: 4294967296]
<------------------------->
|@valu@                   | <--- This defines this as a "Value"
|quadint                  | <--- Signifies this is a 4 byte integer value
|Item 1 - Item            | <--- Short Value Description
|This modifies the firs...| <--- Long Value Description
|65342|65343|65344        | <--- Decimal Offsets in File [Lo Value|Med Value|Hi Value]
|0|0|0                    | <--- Initial (0) Value
<------------------------->

Value Tag - 1 Byte = 8 Bits [ To modify individual bits in one byte ]
<------------------------->
|@valu@                   | <--- This defines this as a "Value"
|byte                     | <--- Signifies this is a bit array
|Item 1 - Item            | <--- Short Value Description
|   *****SEE NOTE*****    | <--- Description Line
|65342|65343|65344        | <--- Decimal Offset in File
|0                        | <--- Reserved Field. Leave at 0
<------------------------->

Note about format of description Line:
Long Description|Bit 0x01|Bit 0x02|Bit 0x04|Bit 0x08|...|Bit 0x80

Fill in Bit ?? With your Description of That Bit.

Value Tag - Item List Value
<------------------------->
|@valu@                   | <--- This defines this as a "Value"
|item                     | <--- This tells this variable to look in the item list.
|Item 1 - Item            | <--- Short Value Description
|123456789ABCDEFGHIJKZ    | <--- Item Mask *SEE BELOW*
|65342                    | <--- Decimal Offset in File
|0                        | <--- Reserved Field. Leave at 0
<------------------------->

The Item mask takes the place of the long description in this value.

Item List - External File
<------------------------->
|!ifil!                   | <--- This defines what file the "Item" variable should look in
|RS3 - Data.ITM           | <--- Name of File to Search Item Data From
<------------------------->


Item List - Mask Values
<------------------------->
|!ikey!                   |
...
The next 45 lines name the item masks... These Masks are:

A-Z
1-9+0
SHIFT+1 '!' - SHIFT+7 '&', SHIFT+9 '(', SHIFT+0 ')'

respectively. the "Z" value is usually used for those Items that just don't
fit anywhere else.

You MUST have those 45 lines. I would suggest you fill the empty ones with "Unused", or
fashion the Default.itm file to your specification, and save it as a different filename.

You may define the "Keys" in the same file as the Variables, as long as !ikey! is after 
the last variable in the file. If you make an !ikey! key and and !ifil! key, it will use 
some of the information from both, even if it's a duplicate.
...
<------------------------->

Item List - Item
<------------------------->
|!item!                   |
|Protector-25             | <--- Item Name
|142                      | <--- Decimal Value of Item
|E                        | <--- Item Mask *SEE BELOW*
<------------------------->

[ \---> Item Masks ]

Item Masks are used by the SGE program to save space, and time. By
using item masks, you can store all the item values in one file, not
several. The item masks are used by the filtering function in the program
every time an item call is made. [ Like I said, I suck when it comes to
creating readme files, go have a look at some data files, and figure it out ]

You may use the same mask as many times as you feel like. If it fits the situation, 
you can make just one item list and connect it to all the item slots, or have one 
specified status apply to 2 or 3 similar values...like in the Sim City SGE Module or 
near the end of the Default.sge editor(The "Already Got" addresses). You are also 
allowed to Append the item list to the end of the editor file, or just write it after 
the last variable and make it start with !ikey!, and have it just one file to deal with. 
But you may not want that, so it's also possible to use the !ifil! command and type 
the name of the file directly below it. If you make an !ikey! key and and !ifil! 
key, it will use some of the information from both, even if it's a duplicate.

[ Thanks / Greetings ]

UGEtab -> Pointed out many things that needed fixing in this readme file,
and also gave me many better descriptions for the entries. Also contributed
some data files to the project.
ThunderGod -> Provided me with Data Tables for RS3, and other projects.
HyruleK -> For testing, providing insight, and finding bugs.
Mana Sword -> I can't read Japanese. [ But, I will learn! (eventually)]
Zophars Domain -> The reason I found emulation.
RPGD -> Where I saw news of the finished RS3 Translation, and many other
translations... The spark to this program!