
GCS 1.0a by CrowTRobo - Oct 30, 2003
------------------------------------

This is a small update to fix the problem a lot of people were having
with the GC and PC not being able to communicate with each other.

Even before coding on the GameCube was possible, I wanted to create
a tool to backup and restore saves on a memory card. I had already
done save utils for the N64 and DC so the GC was just the natural
next step. This initial version has some limitations which will be
worked on for the next release. These are:

- DO NOT use third-party memory cards. They currently do not work
  with GCS and could be corrupted if used.

- Memory cards cannot be inserted after GCS has started. The memcards
  you want to work with must be in the GC when you start PSO.

- Restoring a raw image only works if the memcard you are writing to
  is the same memcard that the image came from. To clear up some
  confusion this only applies to a raw image of the entire memcard
  (commands -ib and -ir). Individual files (commands -b and -r) work
  perfectly with no restrictions.


Save file format
----------------

GCS saves files in the same format as the USB Memory Adapter so
you can use the .GCI files produced by it with GCS and vice versa.


Source code
-----------

I have provided the source code to the PC end so people who use an OS
other than Windows can compile their own version. Linux is already
supported in the source, just define 'LINUX' when compiling:

gcc -Wall -DLINUX -o ctr-gcs ctr-gcs.c

For any other OS you can modify the source to work with your particular
system.


Configuration
-------------

Before using GCS the DOL file needs to be configured with the IP
addresses that you use for the GC and PC. Edit 'ctr-gcs.cfg' to
match your settings and use the following command line:

ctr-gcs -c


Usage
-----

ctr-gcs slot command <file>

Except for the '-c' command mentioned above you must always give
the memory card slot you want to work with. This can be either 'a'
or 'b'. The slot and command options are not case sensitive and
can be in any order, but the filename must be last. The commands
are:

-l  = List the files that are on the memory card. GCS will print
      the files out in the following format:

      0 GEDE 01 Eternal Darkness                 122880
      1 GBIE 08 BIOHAZARD FILE V5 0              65536
      2 GMSE 01 super_mario_sunshine             57344

      First is the file number, then the game code, the company code,
      the name of the file and finally the size of the file in bytes.
      Sometimes you might see a number get skipped. The files on a
      memcard do not have to be in order so this is normal.

      Ex: To list files on the memory card in slot A:

      ctr-gcs a -l

-b# = Backup a memory card file. # is the file number of the file you
      want to back up. The data will be written to the filename you
      provide.

      Ex: To backup the Biohazard save from the list above:

      ctr-gcs a -b1 biohazard.sav

-r  = Restore a file to the memory card. If the file already exists
      on the memory card, the GC will ask if you want to overwrite it.

      Ex: To restore the Biohazard save:

      ctr-gcs a -r biohazard.sav

-ib = Backup a raw image of a memory card. This command reads the
      entire memory card and saves it to a single file.

      Ex: To get a raw image of the memory card in slot B:

      ctr-gcs b -ib slotb.raw

-ir = Restores a raw image to a memory card. The whole memory card
      gets overwritten with the data in the image. This currently
      only works correctly if you restore an image to the same memory
      card that it was backed up from.

      Ex: To restore the raw image of the memory card in slot B:

      ctr-gcs b -ir slotb.raw


GC side
-------

Occasionally, usually with linux, the PC might not be able to connect
with the GC if the GC has been sitting for a bit. If this happens, quit
the exe (pressing any key or CTRL-C quits) press B on the control pad and
run the exe again.

You can reset the GC by holding B and pressing Start. The reset
button itself also works. 


Thanks
------

Costis for GCLIB.
Acey and Schweino for doing PAL testing.

Acey, ein_, G_0, |-|LoD|-|, ]Johnny[, Rockman and anyone else I
may have forgotten who tested this version.


Greets
------

Acey, Angelo, arrid, beber, casio, Costis, DesktopMan, Destop, genueix,
Jarvik7, JL_Picard, kan3da, KONsOUL, LaC, luna_s, Refried, runderwo,
Schweino, SJoS, ss_forces, TenOfTen, ThanatosX, tmbinc, TS_Garp, Weirdzo,
wicket, WT_Riker


CrowTRobo
crowtrobo@hotmail.com

