** Visoly Flash Advance Xtreme Linker v0.5 for Mac OSX **
      ** © 2003 Jouni 'Mr.Spiv/TRSI' Korhonen **
   
   
   
What is the Gbalink? 
	GBALINK is the first Flash Linker program available for your
	Apple Mac OSX (tested under 10.2.6). So far the Gbalink supports
	_only_ Visoly's Flash Addvance Linker Xtreme (USB version).
	Gbalink is a programmers tool. It only has the vital features and
	can only be used from a _terminal_ (commandline, shell, whatever).
	Supported features are:
  - Flash erasing
  - Dumping a flash (also commercial ROMs)
  - Writing a flash
  - Writing multiple ROMs to one flash
  - Fixing the ROM header
  
	Use -h switch to find out all command line options.  For example
	type:
  gbalink -h
Supported Carts:
	Cart support should be rather good. Please contact me if you
	have problems with your cart.. and I can try to fix the support if
	you borrow me your cart 

 Here is a list of known working cart
	configurations:
  - 64M FA        - Tested and works (multirom support doesn't work)
  - 128M FA       - Tested and works (multirom support doesn't work)
  - 64M Xtreme    - Tested and works
  - Turbo FA 256M - Tested and works (with two 128M chips)
  - 256M Xtreme   - Tested and works (with four 64M chips)
  - 256M Xtreme   - Tested and works (with two 128M chips)
  - EZ-Flash      - Not supported
  - Nintendo      - Not supported
  - Hudson        - Not supported
	The cart detection code is able to distinguish between:
  - 32M, 64M, and 128M FA carts
  - 64M, 128M, and 256M Turbo FA carts
  - 64M, 128M, 256M, and 512M Xtreme carts
  - Hudson cart
  - Nintendo cart
  - Standard ROM
Requirements:
	You need:
  - a recent OSX. I have tested with 10.2.6.
  - libusb - 
http://libusb.sourceforge.net/download.html#stable
  - Flash Advance Linker Xtreme
  - some of the supported carts
How, why and notes:
	Gbalink exclusively uses libusb and the protocol information
	is originally reverse engineered using USB snooping tools running
	in a lousy Windows98. Some other valuable information was found
	from Reiner Ziegler'w web site (http://www.ziegler.desaign.de).
	And finally Jeff Frohwein (http://www.devrs.com) provided me with
	some real tough internal information about Visoly's linker.
	Cart detection code is more or less taken from his cartlib
	sources.
	Some things you better know when using Gbalink. If you press
	ctrl-c while operating the flash it might happen that the linker
	is left in an inproper state. Next time you start the program no
	operation succees. Then just replug the linker and rerun the
	software. Due the oddities of the OSX libusb implementation you
	need to run the linker program twice after you replug the linker
	or use it for the first time. The Gbalink will instruct you when
	this must be done.
Examples:
	Save cart to disk and force max 32M dump:
  ./gbalink -c 32 -s dump.gba
	Flash a rom to cart and fix the rom header:
  ./gbalink -f -p trout.gba
	Flash a rom to cart, erase the cart before flashing and fix the
	rom header:
  ./gbalink -e -f -p trout.gba
	Flash multiple roms (1.gba, 2.gba, 3.gba), attach a cart menu,
	fix all rom headers and erase the cart before flashing:
  ./gbalink -e -f -m gbamenu.gba 1.gba 2.gba 3.gba
Todos:
	- SRAM support
	- Better error handling
    - GUI
   
	Don't hold your breath for these new features though.
   
Thanks & greetings to:
	Jeff Frohwein (for some really valuable help, I would have been
	in trouble without his help),
	Raleigh Cross (for beta testing),
	Christophe Dubreuil (for beta testing),
	Mithris (for borrowing me his 64M FA "slower than a slug" cart
	and being my personal Wailing Wall),
	Darkfader (I used parts of his gbafix tool),
	smilydude (for showing me the EZ-loader and actually starting
	this project),
	Flav0r (for getting me started on handhelds and guiding me to GP32),
	_sjaak (for a customized version of his GBAMENU),
	
	and..
	
	Costis, Guyfawkes, Peitchi, Kojote, Mr.Trans, Yado,
	#gp32dev@Efnet, TRSI, ... 
Contact Information - bug reports etc:
	web:   
http://www.deadcoderssociety.tk
	email: mouho@iki.fi
	
Last note:
	Do yourself a favor and buy a GP32