Installation
To use the game editor, simply Hotsync the file ege.prc--that
is all there is to it. Once installed, if you find this program useful,
drop me a note so I can gague how many people are using it (as opposed
to how many are simply downloading and deleting it). I can be contacted
through the email address on the "About..." screen or at http://netninja.com/files/ege/email.html).
Usage
Upon starting the game editor, you will find yourself at the main screen:

Usage--Sim City
Make sure you are not in the middle of a game in Sim City. If
you are looking at the map, use the pulldown menu and select "Close this
city." Your Sim City game should open to the "City List" screen:


Usage--Kyle's Quest
Editing Kyle's Quest save games is even easier. Check out the
screenshot:

Usage--Knight Move
Save your game in Knight Move. You will need a registered version
of Knight Move in order to do this. Go to the Knight Move editor
screen:

Usage--Space Trader
Start a game in Space Trader. Exit out and launch the game editor.
Go to the Space Trader editor screen:

Usage--Galactic Realms
Start a game in Galactic Realms. Exit out and launch the game editor.
Go to the Galactic Realms editor screen:

Usage--BeBop
Start a game in BeBop. Exit out and launch the game editor.
Go to the BeBop editor screen:

Development
To help develop for the game editor, make sure you can first build
the existing version:
If this was successful, you have all of the build tools. Next,
you will probably want to install POSE, the Palm OS Emulator. This
is available from Palm's site (http://www.palmos.com/dev/tech/tools/emulator/),
but requires ROM images. There are two ways to do this. First
you can extract them from your device (for me, this was difficult, as their
extraction software only works for serial cradles--I had to carefully follow
the instructions that a kind soul posted to the VisorCentral message boards,
the URL of which I am presently unable to locate). Secondly, you
can download them from Palm, if you fill out all sorts of information.
The emulator is rather important during development--you end up crashing it once every few minutes until the bugs are worked out.
IMPORTANT DEVELOPMENT INFO: I need someone to help out with getting this to run on PalmOS 4.0. At present, it seems to routinely crash in the 4.0 emulator, but in various places--when access the two global arrays, when returning from a form, etc. If you can help out with this, drop me a line.
Anatomy of the Code
The game editor consists of four pieces--the main menu screen, code
common to all of the "plugins," and two "plugins." I use the term
"plugin" loosely here. They are built into the code at runtime and
cannot be added to or removed from at runtime--they merely perform different
operations on different save files using a set of standardized routines.
You will note that everything gets included in main. This is in complete opposition to what you normally do (compile several .c files into several .o files, then link them together into an executable). My build tools do not seem to like the link step, for some reason. Nor do they like it if I specify multiple .c files and an executable to gcc--it seems to just run seperate steps, creating several .o files in /tmp and then linking them together, causing the same linking problem as when I do this manually. This needs to be fixed, but I am not sure how.
main.c / mainscreen.rcp
This is the main event loop and main menu user interface. If
you add plugins, you will have to add an entry to the list box in mainscreen.rcp
and code to call your form in main.c. Otherwise, you probably do
not have to worry about this piece.
general.c
This includes several interesting functions. SetFieldTextFromHandle,
SetFieldTextFromStr, and ClearFieldText are all "standard" functions defined
in the O'Reilly Palm Programming book.
There are two other functions, saveFieldToFile and loadFieldFromFile, that help facilitate editing numeric values in save games. The latter takes an unsigned byte, integer, or long from a file, then places a text representation in an editable UI field. The former does just the opposite. Two other functions (saveFieldToFileByName and loadFieldFromFileByName) are helper functions that decode a filename into a file ID for you automatically.
quest.c
Simple enough form to edit Kyle's Quest files. Very soon, I hope
to include other values--strength, intelligence, agility, etc.
simcity.c
Simple enough form to edit Sim City files.
Licensing
This program is distributed under the Gnu
Public License, a copy of which is attached