uCON64 1.9.8beta5 Unix (Linux) 1999-2002 by (various)
Uses code from various people. See 'developers.html' for more!
This may be freely redistributed under the terms of the GNU Public License

Usage: ucon64 [OPTION]... [--rom=]ROM [[--file=]FILE]

  --nbak        prevents backup files (*.BAK)
  --hdn=N       force ROM has backup unit/emulator header with N Bytes size
  --hd          same as --hdn=512
                  most backup units use a header with 512 Bytes size
  --nhd         force ROM has no backup unit/emulator header
  --int         force ROM is interleaved (2143)
  --nint        force ROM is not interleaved (1234)
  --dint        convert ROM to (non-)interleaved format (1234 <-> 2143)
                  this differs from the SNES & NES --dint option
  --ns          force ROM is not split
   -e           emulate/run ROM (see /home/daniel/.ucon64rc for more)
  --crc         show CRC32 value of ROM
  --dbs         search ROM database (all entries) by CRC32; --rom=0xCRC32
  --db          ROM database statistics (# of entries)
  --dbv         view ROM database (all entries)
  --ls          generate ROM list for all ROMs; --rom=DIRECTORY
  --lsv         like --ls but more verbose; --rom=DIRECTORY
  --rrom        rename all ROMs in DIRECTORY to their internal names; --rom=DIR
                  this is often used by people who lose control of their ROMs
  --rr83        like --rrom but with 8.3 filenames; --rom=DIRECTORY
  --hex         show ROM as hexdump; use "ucon64 --hex --rom=ROM|less"
  --stpn=N      strip N Bytes from ROM beginning
  --stp         same as --stpn=512
                  most backup units use a header with 512 Bytes size
  --insn=N      insert N Bytes (0x00) before ROM
  --ins         same as --insn=512
                  most backup units use a header with 512 Bytes size
  --ispad       check if ROM is padded
   -p, --pad    pad ROM to full Mb
  --padn=N      pad ROM to N Bytes (put Bytes with value 0x00 after end)
  --strip       strip Bytes from end of ROM; --file=VALUE
   -b           apply Baseline/BSL patch (<=vx.x); --file=PATCHFILE
   -i           apply IPS patch (<=v1.2); --file=PATCHFILE
  --mki         create IPS patch; --file=CHANGED_ROM
   -a           apply APS patch (<=v1.2); --file=PATCHFILE
  --mka         create APS patch; --file=CHANGED_ROM
  --na          change APS description; --rom=PATCHFILE --file=DESCRIPTION
  --ppf         apply PPF patch (<=v2.0); --rom=RAW_IMAGE --file=PATCHFILE
  --mkppf       create PPF patch; --rom=RAW_IMAGE --file=CHANGED_IMAGE
  --nppf        change PPF description; --rom=PATCHFILE --file=DESCRIPTION
  --idppf       change PPF FILE_ID.DIZ (v2.0); --rom=PATCHFILE
                  --file=FILE_ID.DIZ
  --gge         encode GameGenie code; --rom=CODE
                  example: --sms --rom=CODE or --gb --rom=CODE
                    CODE='AAAA:VV' or CODE='AAAA:VV:CC'
                  --gen --rom=CODE
                    CODE='AAAAAA:VVVV'
                  --nes --rom=CODE
                    CODE='AAAA:VV' or CODE='AAAA:VV:CC'
                  --snes --rom=CODE
                    CODE='AAAAAA:VV'
  --ggd         decode GameGenie code; --rom=GG_CODE
                  example: --sms --rom=GG_CODE or --gb --rom=GG_CODE
                    GG_CODE='XXX-XXX' or GG_CODE='XXX-XXX-XXX'
                  --gen --rom=GG_CODE
                    GG_CODE='XXXX-XXXX'
                  --nes --rom=GG_CODE
                    GG_CODE='XXXXXX' or GG_CODE='XXXXXXXX'
                  --snes --rom=GG_CODE
                    GG_CODE='XXXX-XXXX'
  --gg          apply GameGenie code (permanent); --file=GG_CODE
                  example: (like above but --file=GG_CODE instead of
                  --rom=GG_CODE) --rom=ROM --file=GG_CODE
                  supported are:
                  GameBoy/(Super GB)/GB Pocket/Color GB/(GB Advance),
                  Sega Master System(II/III)/GameGear (Handheld),
                  Nintendo Entertainment System/NES/Famicom Game Axe (Redant),
                  and Super Nintendo/SNES/Super Famicom
  --cd          force recognition (of CD IMAGES)
                  this is the support for the most CD-based consoles
  --xcdrw       read/write IMAGE from/to CD-Writer;
                  --rom=CD_IMAGE --file=TRACK_MODE
                  reads automatically when CD_IMAGE does not exist
                  we recommend http://cdrdao.sourceforge.net as burn engine
                  TRACK_MODE='MODE2_RAW' (2352 Bytes; default)
                  TRACK_MODE='MODE1'     (2048 Bytes; standard ISO9660)
                  TRACK_MODE='MODE1_RAW' (2352 Bytes)
                  TRACK_MODE='MODE2'     (2336 Bytes)
                  --file=TRACK_MODE is optional, uCON64 will always try to
                  detect the correct TRACK_MODE from the CD_IMAGE itself
  --mktoc       generate TOC file for Cdrdao; --rom=CD_IMAGE --file=TRACK_MODE
  --mkcue       generate CUE file; --rom=CD_IMAGE --file=TRACK_MODE
                  TRACK_MODE='MODE2_RAW' (2352 Bytes; default)
                  TRACK_MODE='MODE1'     (2048 Bytes; standard ISO9660)
                  TRACK_MODE='MODE1_RAW' (2352 Bytes)
                  TRACK_MODE='MODE2'     (2336 Bytes)
                  --file=TRACK_MODE is optional, uCON64 will always try to
                  detect the correct TRACK_MODE from the CD_IMAGE itself
  --iso         convert BIN/RAW CD_IMAGE to MODE1 (2048 Bytes); --rom=CD_IMAGE
                  this might be useful if you made a MODE2_RAW image of a
                  MODE1 CD and want to mount or burn it as MODE1 (2048 Bytes)
                  this does only work for MODE1_RAW and MODE2(_RAW) CD_IMAGEs
  --help        display this help and exit
  --version     output version information and exit

Dreamcast
  --dc          force recognition; NEEDED
                  --xcdrw works currently only for MODE1/2048 backups which
                  need the Utopia BootCD

Playstation (One)/Playstation 2 (CD only)
  --psx         force recognition; NEEDED
DexDrive
TODO: --xdex    send/receive SRAM to/from DexDrive; --file=PORT
                  receives automatically when --rom(=SRAM) does not exist

GameBoy Advance
  --gba         force recognition
   -n           change ROM name; --file=NEWNAME
  --logo        restore ROM logo character data; Offset: 0x04-0x9F
  --sram        patch ROM for SRAM saving
  --crp         slow down Flash Advance Linker access for ROM (crash patch);
                  --file=WAIT_TIME
                  WAIT_TIME='0'  (default in most crash patches)
                  WAIT_TIME='4'  (faster than 0, slower than 8)
                  WAIT_TIME='8'  (faster than 4, slower than 28)
                  WAIT_TIME='12' (slowest cartridge access speed)
                  WAIT_TIME='16' (faster than 28, but slower than 20)
                  WAIT_TIME='20' (default in most original carts)
                  WAIT_TIME='24' (fastest cartridge access speed)
                  WAIT_TIME='28' (faster than 8 but slower than 16)
  --strip       strip Bytes from end of ROM (use --ispad before); --file=VALUE
  --multi       make multirom for Flash Advance Linker; file with loader must
                  be specified first, then all the ROMs, multirom to
                  create last
  --multi1      same as --multi, but truncate multirom size to 64 Mb
  --multi2      same as --multi, but truncate multirom size to 128 Mb
  --multi3      same as --multi, but truncate multirom size to 256 Mb
Flash Advance Linker
  --xfal        send/receive ROM to/from Flash Advance Linker; --file=PORT
                  receives automatically (32 mbits) when ROM does not exist
  --xfalc=N     receive N mbits of ROM from Flash Advance Linker; --file=PORT
                  N can be 8, 16, 32, 64, 128 or 256
  --xfals       send/receive SRAM to/from Flash Advance Linker; --file=PORT
                  receives automatically when SRAM does not exist
  --xfalb=BANK  send/receive SRAM to/from Flash Advance Linker BANK
                  BANK can be 1, 2, 3 or 4;  --file=PORT
                  receives automatically when SRAM does not exist
                  You only need to specify PORT if uCON64 doesn't detect the
                  (right) parallel port. If that is the case give a hardware
                  address: ucon64 --xfal "rom.gba" 0x378

Nintendo 64
  --n64         force recognition
   -n           change ROM name; --file=NEWNAME
  --v64         convert to Doctor V64 (and compatibles/interleaved)
  --z64         convert to Z64 (Zip Drive/not interleaved)
  --bot         add/extract boot code to/from ROM; --file=BOOTCODE (4032 Bytes)
                  extracts automatically if BOOTCODE does not exist
  --sram        LAC's Makesram; --rom=(LAC's SRAM ROM image) --file=SRAMFILE
                  the SRAMFILE must have a size of 512 Bytes
  --usms        Jos Kwanten's ultraSMS (Sega Master System/GameGear Emulator);
                  --rom=(Jos Kwanten's ultraSMS ROM image) --file=SMSROM
                  works only for ROMs which are <= 4 Mb in size
  --chk         fix ROM checksum
                  supports only 6101 and 6102 boot codes
Doctor V64
  --xv64        send/receive ROM to/from Doctor V64; --file=PORT
                  receives automatically when ROM does not exist
Doctor64 Jr
  --xdjr        send/receive ROM to/from Doctor64 Jr; --file=PORT
                  currently only sending is supported

Super Nintendo/SNES/Super Famicom
  --snes        force recognition
  --hi          force ROM is HiROM
  --nhi         force ROM is not HiROM
  --int         force ROM is in interleaved format
  --int2        force ROM is in interleaved format 2
  --nint        force ROM is not in interleaved format
  --bs          force ROM is a Broadcast Satellaview dump
  --nbs         force ROM is a regular cartridge dump
   -n           change internal ROM name; --file=NEWNAME
  --smc         convert to Super Magicom/SMC
  --fig         convert to *Pro Fighter*/(all)FIG
  --figs        convert Snes9x/ZSNES *.srm (SRAM) to *Pro Fighter*/(all)FIG;
                  --rom=SRAM
  --swc         convert to Super Wild Card*/(all)SWC
  --swcs        convert Snes9x/ZSNES *.srm (SRAM) to Super Wild Card*/(all)SWC;
                  --rom=SRAM
  --mgd         convert to Multi Game*/MGD2/MGH/RAW
  --gd3         convert to Professor SF(2) Game Doctor SF3/6/7
  --ufos        convert Snes9x/ZSNES *.srm (SRAM) to Super UFO; --rom=SRAM
  --stp         convert SRAM from backup unit for use with an Emulator
                  --stp just strips the first 512 bytes
  --dint        convert ROM to non-interleaved format
  --col         convert 0xRRGGBB (html) <-> 0xXXXX (snes); --rom=0xCOLOR
                  this routine was used to find green colors in games and
                  to replace them with red colors (blood mode)
   -j           join split ROM
   -s           split ROM into 4 Mb parts (for backup unit(s) with fdd)
   -k           remove protection (crack)
   -f           remove NTSC/PAL protection
   -l           convert to SlowROM
  --chk         fix ROM checksum
Super WildCard 1.6XC/Super WildCard 2.8CC/Super Wild Card DX(2)/SWC
  --xswc        send/receive ROM to/from Super Wild Card*/(all)SWC; --file=PORT
                  receives automatically when ROM does not exist
                  Press q to abort ^C will cause invalid state of backup unit
  --xswcs       send/receive SRAM to/from Super Wild Card*/(all)SWC;
                  --file=PORT
                  receives automatically when SRAM does not exist
                  Press q to abort ^C will cause invalid state of backup unit
                  You only need to specify PORT if uCON64 doesn't detect the
                  (right) parallel port. If that is the case give a hardware
                  address: ucon64 --xswc "rom.swc" 0x378
                  In order to connect the Super Wild Card to a PC's parallel
                  port you need a standard bidirectional parallel cable like
                  for the most backup units

Neo Geo/Neo Geo CD(Z)/MVS
  --ng          force recognition
  --bios        convert NeoCD BIOS to work with NeoCD emulator; --rom=BIOS
                  http://www.illusion-city.com/neo/
  --sam         convert SAM/M.A.M.E. sound to WAV; --rom=SAMFILE

Genesis/Sega Mega Drive/Sega CD/32X/Nomad
  --gen         force recognition
  --smd         convert to Super Magic Drive/SMD
  --smds        convert Emulator (*.srm) SRAM to Super Magic Drive/SMD
                  --rom=SRAM
  --stp         convert SRAM from backup unit for use with an Emulator
                  --stp just strips the first 512 bytes
  --mgd         convert to Multi Game*/MGD2/MGH/RAW
   -n           change foreign ROM name; --file=NEWNAME
  --n2          change Japanese ROM name; --file=NEWNAME
   -j           join split ROM
   -s           split ROM into 4 Mb parts (for backup unit(s) with fdd)
  --chk         fix ROM checksum
  --1991        fix old third party ROMs to work with consoles build after
                  October 1991 by inserting "(C) SEGA" and "(C)SEGA"
Super Com Pro (HK)/Super Magic Drive/SMD
  --xsmd        send/receive ROM to/from Super Magic Drive/SMD; --file=PORT
                  receives automatically when ROM does not exist
  --xsmds       send/receive SRAM to/from Super Magic Drive/SMD; --file=PORT
                  receives automatically when SRAM does not exist

GameBoy/(Super GB)/GB Pocket/Color GB/(GB Advance)
  --gb          force recognition
   -n           change ROM name; --file=NEWNAME
  --mgd         convert to Multi Game*/MGD2/RAW
  --ssc         convert to Super Smart Card/SSC (+512 Bytes)
  --sgb         convert from GB Xchanger/GB/GBC to Super Backup Card/GX/GBX
  --gbx         convert from Super Backup Card/GX/GBX to GB Xchanger/GB/GBC
  --n2gb        convert for use with Kami's FC Emulator (NES Emulator);
                  --rom=NES_ROM --file=FC.GB (the Emulator)
                  m-kami@da2.so-net.ne.jp www.playoffline.com
  --chk         fix ROM checksum
GameBoy Xchanger/GBDoctor
  --xgbx        send/receive ROM to/from GB Xchanger; --file=PORT
                  receives automatically when ROM does not exist
  --xgbxs       send/receive SRAM to/from GB Xchanger; --file=PORT
                  receives automatically when SRAM does not exist
  --xgbxb=BANK  send/receive 64kbits SRAM to/from GB Xchanger BANK
                  BANK can be a number from 0 to 15; --file=PORT
                  receives automatically when ROM does not exist
                  You only need to specify PORT if uCON64 doesn't detect the
                  (right) parallel port. If that is the case give a hardware
                  address: ucon64 --xgbx "rom.gb" 0x378
Mad Catz Camera Link (GameBoy Camera)
TEST: --xmccl   send/receive BYTES to/from Mad Catz Camera Link; --file=PORT
                  currently only receiving is supported

Handy(prototype)/Lynx/Lynx II
  --lynx        force recognition
  --lyx         convert to LYX/RAW (strip 64 Bytes LNX header)
  --lnx         convert to LNX (uses default values for the header);
                  adjust the LNX header with the following options
   -n           change ROM name (LNX only); --file=NEWNAME
  --nrot        set no rotation (LNX only)
  --rotl        set rotation left (LNX only)
  --rotr        set rotation right (LNX only)
  --b0          change Bank0 kBytes size (LNX only); --file={0,64,128,256,512}
  --b1          change Bank1 kBytes size (LNX only); --file={0,64,128,256,512}
Lynxit (Lynx Cartridge Backup Board)
TEST: --xlit    send/receive ROM to/from Lynxit interface; --file=PORT
                  receives automatically when ROM does not exist

PC-Engine (CD Unit/Core Grafx(II)/Shuttle/GT/LT/Super CDROM/DUO(-R(X)))
Super Grafx/Turbo (Grafx(16)/CD/DUO/Express)
  --pce         force recognition
  --smg         convert to Super Magic Griffin/SMG
  --mgd         convert to Multi Game Doctor*/MGD2/RAW

Sega Master System(II/III)/GameGear (Handheld)
  --sms         force recognition
  --mgd         convert to Multi Game*/MGD2/MGH/RAW
  --smd         convert to Super Magic Drive/SMD (+512 Bytes)
  --smds        convert Emulator (*.srm) SRAM to Super Magic Drive/SMD
Super Com Pro (HK)/Super Magic Drive/SMD
  --xsmd        send/receive ROM to/from Super Magic Drive/SMD; --file=PORT
                  receives automatically when ROM does not exist
  --xsmds       send/receive SRAM to/from Super Magic Drive/SMD; --file=PORT
                  receives automatically when SRAM does not exist

Nintendo Entertainment System/NES/Famicom Game Axe (Redant)
  --nes         force recognition
  --unif        convert to UNIF format/UNF (uses default values)
  --ines        convert to iNES format/NES (uses default values)
  --ineshd      extract iNES header from ROM (16 Bytes)
   -j           join Pasofami/PRM/700/PRG/CHR/split ROM (Pasofami -> iNES)
  --pasofami    convert to Pasofami/PRM/700/PRG/CHR
   -s           convert/split to Pasofami/PRM/700/PRG/CHR (iNES -> Pasofami)
  --ffe         convert to FFE (+512 Bytes)
  --mapr=MAPR   specify board name or mapper number for conversion options
                  MAPR must be a board name for UNIF and a number for Pasofami
                  and iNES
  --dint        convert ROM to non-interleaved format
  --ctrl=TYPE   specify controller type for ROM (UNIF only)
                  TYPE='0' regular joypad
                  TYPE='1' zapper
                  TYPE='2' R.O.B.
                  TYPE='3' Arkanoid controller
                  TYPE='4' powerpad
                  TYPE='5' four-score adapter
  --ntsc        specify TV standard as NTSC (UNIF only)
  --pal         specify TV standard as PAL (UNIF only)
  --bat         specify battery is present
  --nbat        specify battery is not present
  --vram        specify VRAM override (UNIF only)
  --nvram       specify no VRAM override (UNIF only)
  --mirr=MTYPE  specify mirroring type
                  MTYPE='0' horizontal mirroring
                  MTYPE='1' vertical mirroring
                  MTYPE='2' mirror all pages from $2000 (UNIF only)
                  MTYPE='3' mirror all pages from $2400 (UNIF only)
                  MTYPE='4' four screens of VRAM
                  MTYPE='5' mirroring controlled by mapper hardware (UNIF only)
  --cmnt=TEXT   specify that TEXT should be used as comment (UNIF only)
  --dumpinfo    use dumper info when converting to UNIF; --file=INFOFILE
   -n           change internal ROM name (UNIF only); --file=NEWNAME
  --fds         convert Famicom Disk System file (diskimage) from FAM to FDS
  --fdsl        list Famicom Disk System/FDS (diskimage) contents

WonderSwan/WonderSwan Color/SwanCrystal
  --swan        force recognition
  --chk         fix ROM checksum

Panther(32bit prototype)/Jaguar64/Jaguar64 CD
  --jag         force recognition

Neo Geo Pocket/Neo Geo Pocket Color
  --ngp         force recognition

Database: 15216 known ROMs in db.h (+0)

TIP: ./ucon64 --help --snes (would show only Super Nintendo related help)
     ./ucon64 --help|less (to see everything in less)
     give the force recognition switch a try if something went wrong

Report problems/ideas/fixes to noisyb@gmx.net or go to http://ucon64.sf.net