uCON64 - Changes

`
The original uCON for SNES and Genesis was written by Chicken & chp in 1993-1995

1.9.0
- completely re-written
- this is the first real version with support for the most consoles

1.9.1
- bug fixes
- fixed the -xv64 routine for receive and emulation on N64
- cosmetical changes
- removed the stupid curses GUI
- optimized noisette.h for speed
- added more OPTIONS and CONSOLE SYSTEMS

1.9.2
- started to add missing Sega System16(A/B)/System 18/dual 68000 support
- -xv64 shows now the filename on the Doctor instead of "UCON64" (sorry)
- removed -xmp3 option for SongBoy (latest information says that it will be a USB device with copyprotected MPE standard instead of MP3.. HAHAHAHA!!!)
- TODO: -xmp3 send MP3 file(s) to SongBoy (MP3 player for Game Boy)
- removed options which were added by mistake (like parallel transfer for Z64)
- added -ispad (looks for repeating bytes at the end of a probably padded ROM)
- added -rn (some people might find it useful)
- added -mg, -bin and 'show ROM' support for PC-Engine
- added -usms for Jos Kwanten's ultraSMS an Sega Master System/Game Gear emulator for the Nintendo64
- fixed aps (GRRNNNNN!!!)
- added an universal frontend (in Java) for all platforms and all programs that need a filename
- added CD32, CD-i and Real 3DO support
- added -bin and -ffe option for Sega Master System/Game Gear
- added database for NES roms (that enlarged the uCON64 executable by 190kb grnnn...) "You gotta do what you gotta do." (Futurama)
- added -db and -dbv database commands... now everyone can check if the uCON64 version he uses has new database entries for a console system

1.9.3
- added -mka create APS patch support
- added -na change APS description
- added -hd, -nhd switches for SMS/Game Gear
- added auto-detection and some information for Jaguar ROMs
- added -ssc convert to Super Smart Card (Game Boy)
- fixed/added -chk fix checksum (Game Boy)
- added -gg Game Genie support for SNES
- cleaned up the usage output
- added -chk fix checksum for Super NES/Super Famicom
- removed most CDROM based consoles from usage since uCON64 could support them only by showing some information about the CDROM itself (option -cdrom)
- added -gd3 convert to Professor SF(2) Game Doctor SF3/6/7 (autojoin)
- added -gdf fix Professor SF(2) Game Doctor SF3/6/7 savegame problems

1.9.4
- included all databases for every console system that has ROMs without a header with text
- added 324 entries to SMS database
- added -sam convert SAM/M.A.M.E. sound to WAV; --rom=SAMFILE
- added -b2i convert BIN/RAW(2352)/Mode2(2336) to ISO; --rom=BIN_IMAGE
- added -ppf apply PPF patch (<=2.0); --rom=ISO_IMAGE --file=PATCHFILE
- added -nppf change PPF description; --rom=PATCHFILE --file=DESCRIPTION
- added -mkppf create PPF patch; --rom=ISO_IMAGE --file=CHANGED_IMAGE
- added -ip extract ip0000.bin (GD-ROM header/256 bytes); --rom=/dev/<cdrom>
- added -fds convert Famicom Disk System file (diskimage) from FAM to FDS
- changed the FAQ a bit
- overworked the whole tool to make it easier to develop
- searched a new site for it (http://ucon64.sourceforge.net)

1.9.5
- after the update release of 1.9.4 I had a closer look at my sources and realized that my style heavily changed since 1.9.3 the result is that I had to make more changes in the source starting from ucon64.c
- Gilligan wrote a nice routine to read out NeoGeo Pocket roms (added)
- reorganized the whole source
- added Game Boy Advance support
- added (GBA) -n change ROM name; --file=NEWNAME
- added (GBA) -logo restore ROM logo character data 0x04-0x9F
- added (GBA) -chk fix ROM checksum
- added (GB/Game Gear/NES) -gg apply Game Genie code (permanent)
- added (GB/Game Gear/NES/GEN/SNES) -gge encode Game Genie code
- added (GB/Game Gear/NES/GEN/SNES) -ggd decode Game Genie code
- added (LYNX) -lyx convert to LYX/RAW (strip 64 Bytes LNX header)
- added (LYNX) -lnx convert to LNX (uses default values for the header)
- added (LYNX) -n change ROM name (LNX only); --file=NEWNAME
- added (LYNX) -nrot set no rotation (LNX only)
- added (LYNX) -rotl set rotation left (LNX only)
- added (LYNX) -rotr set rotation right (LNX only)
- added (LYNX) -b0 change Bank0 kBytes size (LNX only); --file={0,64,128,256,512}
- added (LYNX) -b1 change Bank1 kBytes size (LNX only); --file={0,64,128,256,512}
- added -idppf change PPF FILE_ID.DIZ (2.0); --rom=PATCHFILE --file=FILE_ID.DIZ
- added -strip strip Bytes from end of ROM; --file=VALUE
- added -e emulate/run ROM (check INSTALL and $HOME/.ucon64rc for more)
- added (GBA) -sram patch ROM for SRAM saving
- added (GBA) -crp slow down Flash Advance Linker access for ROM (crash patch)
- added (GBA) -strip strip Bytes from end of ROM (use -ispad before); --file=VALUE
- added (GBA) -xfal send/receive to/from Flash Advance Linker; --file=PORT

1.9.6
- this release brings you full support for the Super Wild Card
- added (SNES) -xswc send/receive to/from Super Wild Card*/(all)SWC; --file=PORT (by dbjh)
- added (SNES) -xswcs send/receive SRAM to/from Super Wild Card*/(all)SWC; --file=PORT (by dbjh)
- added (GB) -sgb convert from GB Xchanger/GB/GBC to Super Backup Card/GX/GBX (by NoisyB)
- added (GB) -gbx convert from Super Backup Card/GX/GBX to GB Xchanger/GB/GBC (by NoisyB)
- made a few small bug fixes and code cleanups (by NoisyB; thanks to dbjh)
- DOS port of uCON64 available (by dbjh)
- BeOS port of uCON64 available (by dbjh)
- added wildcard support to -find find string in ROM (by NoisyB)
- added (SNES) some new NTSC/PAL and SlowROM fix codes (by NoisyB)
- added (SNES) -swcs convert emulator *.srm to Super Wild Card*/(all)SWC (by NoisyB)

1.9.7
- added (NES) -fdsl list Famicom Disk System/FDS (diskimage) contents (by NoisyB)
- updated (GBA) -xfal send/receive ROM to/from Flash Advance Linker; --file=PORT (by dbjh)
- added (GBA) -xfalc<n> specify chip size in Mbits of ROM in Flash Advance Linker when receiving (by dbjh)
- added (GBA) -xfalm use SPP mode, default is EPP (by dbjh)
- added (Neo Geo) -bios convert NeoCD Bios to work with NeoCD emulator (by NoisyB; thanks to Caz)
- changed the whole internal ROM database code (by NoisyB)
- added -dbs search ROM database (all entries) by CRC32; --rom=0xCRC32 (by NoisyB)
- added (Virtual Boy) show info (by NoisyB)
- added (WonderSwan) show info (by NoisyB)
- added (ColecoVision) show info (by NoisyB)
- added (Vectrex) show info (by NoisyB)
- added ROMs to database for Virtual Boy, WonderSwan, ColecoVision and Vectrex (by NoisyB)
- added (Intellivision) show info (by NoisyB)
- made the internal ROM Database optional; compiled without DB uCON64 will be only ~250kB in size! (by NoisyB)
- updated (all) fixed -cs (file compare) (by dbjh)
- updated (SNES) fixed dumping of `special' SNES cartridges (for the meaning of special, see src/backup/swc.c) (by dbjh; thanks to Caz)
- updated (SNES) fixed -k (crack) (by dbjh)
- updated (SNES) fixed -f (NTSC/PAL fix) (by dbjh)
- uCON64 will recognize *ANY* kind of ROM or Console System via DB now...
give it a Atari2600 ROM and it will just recognize it :) (by NoisyB)
- updated the internal DB; it can recognize 12387 different ROMs (by NoisyB)
- updated (SNES) fixed -s (split ROM) (by dbjh)
- updated (Genesis) fixed -s (by NoisyB)
- updated (all) fixed -swc & -ins (and others) for files with a size a multiple of 32kB (by dbjh)
- updated (SNES) fixed -swc when ROM file has a name that already has the extension .swc fixed the same problem for -smc and -fig (by dbjh)
- added -lsv like -ls but more verbose; --rom=DIRECTORY (by NoisyB)
- updated (SNES) fixed checksum output (by NoisyB)
- updated (SNES) fixed -j (join multi files) (by dbjh)
- updated (SNES) fixed checksum output for Broadcast Satellaview ROMs (by dbjh; thanks to Cowering)
- added (SNES) -figs convert emulator *.srm (SRAM) to *Pro Fighter*/(all)FIG (by dbjh; thanks to Caz)
- added (SNES) -ufos convert emulator *.srm (SRAM) to Super UFO (by dbjh; thanks to Caz)
- added (SNES) -int, -int2 & -nint force ROM is (not) in interleaved format (2) (by dbjh)
- added (SNES) -dint convert ROM to non-interleaved format (by dbjh)
- added 2830 new ROMs to internal ROM database (by NoisyB)
- added (Genesis) -xsmd send/receive ROM to/from Super Magic Drive/SMD; --file=PORT (by NoisyB)
- added (Genesis) -xsmds send/receive SRAM to/from Super Magic Drive/SMD; --file=PORT (by NoisyB)
- added support for CD based consoles again; uCON64 now uses cdrdao as burn engine (by NoisyB)
- added Dreamcast, PSX (one), PS2, Real3DO, CD-i, CD32 and Saturn support (by NoisyB)
- added (Genesis) -smds convert emulator (*.srm) SRAM to Super Magic Drive/SMD (by NoisyB)
- added -r2i convert RAW to ISO9660; --rom=RAW_IMAGE (by NoisyB)

1.9.8-1
- added more verbose WonderSwan ROM info (by NoisyB; thanks to dox)
- updated (GBA) used Jeff Frohwein's Flash Advance Linker code V1.72 (by dbjh)
- added (GBA) -xfals send/receive SRAM to/from Flash Advance Linker; --file=PORT (by dbjh)
- added (GBA) -xfalb<n> send/receive SRAM to/from Flash Advance Linker bank n; --file=PORT (by dbjh)
- removed (GBA) -xfalm (use SPP mode), because it is not needed anymore (by dbjh)
- updated (SNES) fixed checksum function for Far East of Eden Zero (J) (by dbjh)
- added (GBA) -multi{1,2,3} make multirom for Flash Advance Linker (by dbjh)
- updated/added (SNES) Game Doctor ROM file support (-gd3 & -s) (by John Weidman)
- updated (all) fixed DOS specific bug in IPS code (by dbjh)
- updated (SNES) fixed DOS specific problem for -swc, -fig and -smc (by dbjh)
- updated (all) fixed DOS specific bug in -ins code (by dbjh)
- introducing config file updates without overwrites of old values for more comfort (by NoisyB)
- added (WS/WSC) -chk fix ROM checksum (for WonderSwan(Color)) (by NoisyB; thanks to dox)
- updated (SNES) changed -swcs, -figs and -ufos to always create a file of 32.5 kB. This solves some problems where SRAM files created with an emulator would not work on a copier (by dbjh; thanks to Caz for investigating the problem and providing a solution)
- added -mkcue generate CUE file; --rom=CD_IMAGE --file=TRACK_MODE (by NoisyB)
- ported the whole project to FreeBSD (by NoisyB)
- updated (GBA) changed -xfalb<n> to -xfalb <n> (space between option and argument) (by dbjh). Did the same thing for -xfalc<n>
- updated (GB) changed -xgbxb<n> to -xgbxb <n> (space between option and argument) (by dbjh)
- switched internal workflow to getopt() and made numerous cosmetical changes/clean ups (by NoisyB)
- added -hdn=BYTES force ROM has backup unit/emulator header with BYTES size (by NoisyB)
detects the correct TRACK_MODE of IMAGES w/o *.cue file
- added --rrom rename all ROMs in DIR to their internal names; --rom=DIR (by NoisyB)
- added --rr83 like --rrom but with 8.3 filenames; --rom=DIR (by NoisyB)
- added --stpn=N strip N Bytes from ROM beginning (by NoisyB)
- added --insn=N insert N Bytes (0x00) before ROM (by NoisyB)
- added --xmccl send/receive BYTES to/from Mad Catz Camera Link (experimental) (by NoisyB)
- speed --rrom, --rr83 and --ls have been sped up significantly
- updated (N64) added 512 Mb ROM support for transfers to Doctor V64 Junior (by NoisyB; thanks to TenOfTen (tenoften@jahej.com))
- updated (SNES) fixed -fig to produce the same output as a Super Pro Fighter (by dbjh; thanks to JohnDie for the information)
- updated (all) parallel port is only accessed for copier I/O (by dbjh)
- added (SNES) -bs & -nbs force ROM is a Broadcast Satellaview dump/regular cartridge dump (by dbjh)
- added (NES) -unif convert to UNIF format/UNF {iNES, UNIF}->UNIF (by dbjh)
- updated (NES) -ines convert to iNES format {iNES, UNIF, Pasofami}->iNES (by dbjh)
- added (NES) -dint convert ROM to non-interleaved format (by dbjh)
- added (NES) -pasofami convert to Pasofami format iNES->Pasofami (by dbjh)
- updated (NES) ROM information for iNES, UNIF, FFE and Pasofami (by dbjh)
- updated (NES) fixed -j so that it converts properly from Pasofami to iNES (by dbjh)
- updated (NES) fixed -s so that it converts properly from iNES to Pasofami (by dbjh)
- updated (NES) fixed -ineshd (extract iNES header to .hdr file) (by dbjh)
- added (NES) -ctrl set controller type for ROM (UNIF only) (by dbjh)
- added (NES) -ntsc set TV compatibility to NTSC (UNIF only) (by dbjh)
- added (NES) -pal set TV compatibility to PAL (UNIF only) (by dbjh)
- added (NES) -bat set battery backup (by dbjh)
- added (NES) -nbat set no battery backup (by dbjh)
- added (NES) -vram set VRAM override (UNIF only) (by dbjh)
- added (NES) -nvram set no VRAM override (UNIF only) (by dbjh)
- added (NES) -mirr set mirroring type (by dbjh)
- added (NES) -n change internal ROM name (UNIF only) (by dbjh)
- added (NES) -mapr=NAME specify board name or mapper number for conversion options (by dbjh)
- added (NES) -dumpinfo use dumper info when converting to UNIF (by dbjh)
- updated (NES) UNIF code works also on big endian machines (by dbjh)
- updated (GBA) changed meaning of -xfalc. In order to dump N megabits of a cartridge specifying -xfalc=N <filename> is enough (by dbjh)
- updated (NES) fixed some minor format conversion problems (by dbjh)
- updated (LYNX) fixed some problems with endianess (by dbjh)
- added (LYNX) --lynxit send/receive ROM to/from Lynxit interface (by NoisyB)
- updated (SNES) fixed checksum function for Momotaro Dentetsu Happy (J) (by dbjh)
- updated (SNES) fixed SNES info for Dai Kaiju Monogatari 2 (J) (by dbjh)
- updated (SNES) improved SNES chip type info (by dbjh)
- added gzip support (by dbjh)
- updated (Genesis) fixed several bugs (header is correct after -j/-s, correct behaviour if switch -nbak is active, -smd/-mgd if already in SMD/MGD format, -lsv) (by dbjh)
- added --padn=N pad ROM to N Bytes (put Bytes with value 0x00 after end) (by dbjh)
- updated (NES) FDS images are recognized without -fdsl (by dbjh)
- added (GBA) -xfalmulti send multiple ROMs to Flash Advance Linker (by dbjh)
- updated (GBA) changed -multi so that it takes a size argument (by dbjh)
- removed (GBA) -multi{1,2,3}, -multi can be used instead (by dbjh)
- some code clean ups (by NoisyB)
- added read-only zip support (by dbjh) Note that only the first file inside the zip archive will be looked at. Use -ls{v} to see info about all files in the zip archive
- added (SNES) NSRT header support (by dbjh)
- updated (SNES) fixed an SWC problem for HiROM games without SRAM (by dbjh)
- updated (SNES) -k also cracks Killer Instinct (by dbjh)
- updated (SNES) -smc writes a correct SMC header (by dbjh)
- added (SNES) -ctrl{2} specify type of controller in port 1/2 for emu when converting (by dbjh)
- updated (Genesis) replaced Charles MacDonald's SMD code with our own (by dbjh)
- added experimental (PSX/N64) --xdex send/receive BLOCK N to/from DexDrive (by NoisyB)
- added 664 new ROMs to the internal database (by NoisyB)
- updated (SNES) replaced Cowering's BS detection code with John Weidman's (by dbjh)
- updated (all) fixed two bugs in IPS creation code (by dbjh)
- updated (all) -mki generates RLE compressed IPS files (by dbjh)
- updated (SNES) fixed split file detection for SWC and FIG dumps (by dbjh)
- updated (Genesis) fixed -s for RAW images (by dbjh)
- updated (SNES) added crack for Donkey Kong Country, Diddy's Kong Quest & Mega Man X (by dbjh; many thanks to CL of NSRT)
- updated (SNES) fixed bug in Game Genie code (by dbjh)
- updated (all) fixed subtle bug in function that is used for -k, -f, -l & -crp (by dbjh)
- updated (SNES) added crack for BS The Legend of Zelda Remix & Demon's Crest (by dbjh, based on info from John Weidman)
- updated (SNES) added crack for at least the following games: Breath of Fire II, Kirby's Dream Course (many thanks to John Weidman), Lufia II - Rise of the Sinistrals and Earthbound (thanks to CL) (by dbjh)
- updated (SNES) crack for Mega Man X should work (better) (by dbjh)
- updated (SNES) added NTSC/PAL fix for at least the following games: Final Fight Guy, Gokujyou Parodius, Kirby No Kira Kizzu, Robotrek and Seiken Densetsu 3 (by dbjh)
- updated (SNES) added crack for Uniracers/Unirally and NTSC/PAL fix for Seiken Densetsu 2 and Secret of Mana (by dbjh; thanks to John Weidman)
- updated (all) fixed problem with reading environment variables under DOS and Windows (by dbjh)
- updated (all) environment variables take precedence over configuration file variables (by dbjh)
- updated (SNES) fixed some problems with joining GD3 files (by dbjh)
- added (SNES) -xgd3 send ROM to Game Doctor SF3(SF6/SF7); --file=PORT (by John Weidman and dbjh)
- added (SNES) -dbuh display backup unit header and see if it matches with what uCON64 found while analyzing the ROM data (by dbjh, based on an idea by JohnDie)
- removed (SNES) -gdf (fix Game Doctor savegame problems), because -gd3 already provides this functionality (by dbjh)
- updated (SNES) fixed some -xgd3 problems, uppercase filenames sent to unit, buffer data correct for all files, transfer file size fixed (by John)
- updated (SNES) checksums and deinterleaves for HiROM 24 Mbit Game Doctor format should work (by John)
- added (SNES) -xswc2 send ROM to Super Wild Card and enable Real Time Save mode (by dbjh)
- updated (SNES) added NTSC/PAL fix for Live-a-Live (by dbjh)
- updated (all) added full wildcard support ("ucon64 -fig *.swc"). Don't forget to read the FAQ (by dbjh)
- added (all) -q be quiet (don't show ROM info) (by dbjh)
- updated (all) uCON64 handles multiple options on the same command line (by dbjh)
- added (SNES) --ssize=SIZE specify split part size in Mbit (not for Game Doctor SF3) (by dbjh)
- updated (SNES) added NTSC/PAL fix for Terranigma (by dbjh; thanks to John)
- added (all) full support for all existing DAT files (GoodXXXX, RomCenter) they'll be used to identify (test) or rename your ROMs or any other purpose you might need a ROM manager for (by NoisyB)
- updated (SNES) fixed BS ROM detection affecting BS Zootte Mahjong! IVT (by John)
- added (all) --lsd to list all ROMs using RomCenter or GoodXXXX DAT files (by NoisyB)
- updated (all) improved support for zip files that contain more than one file (by dbjh)
- updated (SNES) added NTSC/PAL fix and crack for Mario no Super Picross (by dbjh; thanks to John)
- renamed (N64) --sram to --lsram (by NoisyB)
- replaced --file with option arguments for the following options: --strip, --find, -c, --cs, --dbs, -b, -i, --mki, -a, --mka, --na, --ppf, --mkppf, --nppf, --idppf, --crp, -n, --bot, --lsram, --usms, --n2, --n2gb, --b0, --b1, --sam, --bios and --dumpinfo (by NoisyB)
- updated (PSX) PPF code works correctly and generates correct patches on big-endian machines (by dbjh)
- added (patch) --patch option to specify the patch file for APS, IPS, BSL and PPF (by NoisyB)
- updated (SNES) added NTSC/PAL fix for Dual Orb 2 (thanks to John), Dr. Mario, Dragon - The Bruce Lee Story (U) and Wolfenstein 3D (U) (by dbjh)
- updated (N64) APS code works correctly and generates correct patches on big-endian machines (by dbjh)
- added (all) -o specify output directory. Note that now uCON64 by default writes its output files to the current directory (by NoisyB and dbjh)
- added (all) --poke=OFF:V change byte at file offset OFF to value V (by dbjh)
- updated (SNES) fixed problem where it was necessary to run uCON64 twice on a ROM with the option -chk, before the checksum was really fixed (by dbjh)
- added (all) --rename (by NoisyB and dbjh)
- added (all) --scan like: GoodXXXX scan ... (by NoisyB)
- added (SNES) uCON64 is able to use an "addendum file" for the options -k (snescopy.txt), -f (snesntsc.txt or snespal.txt) and -l (snesslow.txt). You can add new search patterns to those files if the latest binary doesn't support them yet. See the FAQ for a more elaborate explanation (by dbjh)
- added Visual C++ build support (including libdiscmage) (by dbjh)
- updated (GBA) fixed a bug that would crash FAL code on compressed files (by dbjh)
- (re)added (GBA) -xfalm (try to enable EPP mode). Note that the meaning is reversed. Enabling EPP mode only when this switch is specified makes it possible to use the Windows versions of uCON64 under Windows XP (NT/2000) (by dbjh)
- added support for the I/O port driver inpout32.dll to the Windows ports. See the FAQ for more information (by dbjh)
- uCON64 can also be compiled with g++; configure with "CC=g++ ./configure" (by dbjh)
- updated (SNES) uCON64 uses one maker/publisher list for all SNES games (by dbjh; thanks to FluBBa for the help)
- updated (GB & GBA) fixed maker info (by dbjh; thanks to FluBBa for the info)
- updated (SNES, GB & GBA) fixed huge mistake in the way the Nintendo publisher list was used (resulting in incorrect maker info) (by dbjh)
- updated (SNES) fixed problem with splitting HiROM Game Doctor files smaller than or equal to 8 Mbit (by dbjh)
- replaced internal handling/conversion of DiscJuggler and Nero images with included libdiscmage. The recognition of ISO, BIN, CDI and NRG images works in 80% of the cases. Every other function like ripping/converting is still flakey and therefore disabled in this beta release (by NoisyB)
- updated (all) fixed problems with -rename & -rrom for files without a suffix (by dbjh)
- updated (all) links (including symbolic links) are handled correctly for -rename & -rrom (by dbjh)
- added support for I/O port driver io.dll to the Windows ports. See the FAQ for more information (by dbjh)
- added (SNES) -xfig send/receive ROM to/from Pro Fighter; --file=PORT (by JohnDie and dbjh)
- added (SNES) -xfigs send/receive SRAM to/from Pro Fighter; --file=PORT (by JohnDie and dbjh)
- added (all) --mkdat=DATFILE create DAT file based on a directory/list of ROMs (by dbjh)
- updated (N64) fixed -usms (by dbjh)
- updated (all) fixed problem with -rename when output directory is on another file system (M$ speak: drive) (by dbjh)
- added MinGW build support (including libdiscmage) (by dbjh)
- changed name of two property variables: now configdir is named ucon64_configdir and datdir is named ucon64_datdir (by dbjh)
- updated (SNES) changed checksum calculation function so that it is stricter (by dbjh; thanks to Nach)
- updated (SNES) added more verbose BS info (by dbjh, based on info from Derrick Sobodash)
- updated (GB) fixed -n2gb, -gbx & -sgb (by dbjh)
- updated (SNES) replaced -ehi with -erom (force ROM is "Extended") in order to support the two Extended LoROM dumps in the known universe (by dbjh)
- updated (SNES) added initial support for Sufami Turbo ROMs (by dbjh; thanks to Nach for some info)
- added support for GameCube images to libdiscmage (by NoisyB; thanks to gc-nfo.com)
- updated (SNES) improved detection of interleaved ROMs (by dbjh)
- updated (SNES) -smc, -swc, -fig, -mgd & -gd3 (if it's a LoROM dump) automatically deinterleave the ROM data if the ROM is detected as interleaved (by dbjh)
- updated (SNES) -gd3 can convert Tales of Phantasia and Dai Kaiju Monogatari 2 (by dbjh)
- updated (SNES) interleaved extended HiROM dumps are handled correctly (by dbjh)
- updated (SNES) uCON64 follows the "uCONRST standard" for calculating the "search CRC32" of BS dumps (by dbjh)
- updated (all) both the search CRC32 and the "data CRC32" are displayed if they differ (by dbjh)
- updated (SNES) applied anomie's GD patch which solved a problem with one-part split files (by dbjh)
- updated (SNES) replaced John Weidman's BS detection code with Nach's (by dbjh)
- updated (SNES) uCON64 now recognises a complete GoodSNES 0.999.5 set (by JohnDie and dbjh)
- added (SNES) -dmirr strip mirrored block from end of ROM (by dbjh)
- added (SNES) support for native Super UFO file format (by John and dbjh) Use -ufo to convert a file to Super UFO format, use -s to split the resulting file (required for HiROM games)
- updated (SMS) -mgd is recognised again, -smd won't crash uCON64 anymore and -smds calls the SMS function when -sms is specified (by dbjh)
- updated (SMS) -sms is no longer required for SMD files, they are automatically detected (by dbjh)
- updated (SNES) fixed -b (apply Baseline patch) (by dbjh)
- updated (all) added support for non-standard parallel port addresses (by dbjh)
- updated (SNES) added crack for Tetris Attack (by dbjh; thanks to CL)

1.9.8-2
- updated (SNES) -gd3 produces a more logical format for Daikaijuu Monogatari 2 (by dbjh; thanks to Nach for the idea)
- updated (SMS) -smd interleaves SMS files (by dbjh; thanks to nori-p for testing and feedback)
- updated (GBA) fixed stupid bug introduced in 1.9.8beta8 that caused -xfalmulti to hang (-multi and -xfal still worked) (by dbjh)
- updated (SNES) hopefully fixed last problem with splitting GD3 files (by dbjh)
- updated (SNES) added crack for Dixie Kong's Double Trouble (by dbjh, based on IPS patch by Black Hole of Infernal Affairs)
- files of 0 bytes won't be detected as WonderSwan files anymore (by dbjh)
- removed (NES) support for bad FDS DAT files (by dbjh) If you really want to use FDS DAT files created by tools that erroneously include the header in the CRC32 calculation, use the switch -nhd. Someone with a complete FDS collection should create a new DAT file
- updated (SNES) fixed crashing on first split file of Tales of Phantasia and Daikaijuu Monogatari 2 (by dbjh)
- added (SNES) -xgd6 send ROM to Game Doctor SF6/SF7. This probably solves the problems people are having with -xgd3 (by John)
- added (SNES) -xgd6s send/receive SRAM to/from Game Doctor SF6/SF7 (by John)
- added (SNES) -xgd3s send SRAM to Game Doctor SF3/SF6/SF7 (by John)
- added (Genesis) -multi can create a multi-game file for use on the MD-PRO flash card. The downside: creating a multirom for the FAL doesn't work without -gba anymore (by dbjh; thanks to Enemy and acem77 for testing)
- added (Genesis) -f can fix region protections, addendum files are genpal.txt and mdntsc.txt (by dbjh)
- added (SNES) -id force -gd3 to produce a unique filename. This switch doesn't show in the help, because it "fails" for 130 dumps of the GoodSNES "0.999.6--" set. 128 IDs are each shared by 2 games, 2 IDs are shared by 3 games (by dbjh)
- updated (all) the patch generation options (-mka, -mki, -mkppf) use the modified ROM name for the patch to create. They used to use the name of the original ROM (by dbjh)
- updated (N64) fixed major bug in APS creation code (by dbjh)
- updated (SNES) added NTSC/PAL fix for Magical Pop'n (J) and Metal Warriors (U) (by dbjh)
- added (Genesis) recognition of real MGD files (by dbjh; thanks to acem77 for the feedback)
- updated (Genesis) -mgd now produces proper MGD files (by dbjh)
- added (Genesis) -bin convert to binary format. This option produces files in the format that uCON64 1.9.8-1 produces with the option -mgd (by dbjh)
- added (Genesis) -xmd & -xmds send/receive ROM/SRAM to/from MD-PRO flash card programmer (by dbjh and NoisyB with many thanks to timofonic and of course ToToTEK Multi Media for providing us with the necessary information. Special thanks go to Leo of ToToTEK for being very helpful and willing to answer our questions)
- added (Genesis) -ssize=SIZE specify split part size in Mbit (by dbjh)
- updated (SNES, SMS, PCE & Genesis) -mgd produces correct filenames (by dbjh; thanks to acem77 for testing and feedback)
- updated (Genesis) -mgd automatically pads files to the right size (by dbjh)
- added (PCE) -swap invert/swap bits of all bytes of a file. This effectively converts PC-Engine games between Japan and U.S.A. "mode" (by dbjh; thanks to acem77 for the information)
- added (SMS) backup unit header length detection (by dbjh; thanks to acem77 for pointing this out) This made a problem with the current SMS DAT file surface: some CRC32 values are the result of including a backup unit header in the calculation. Someone with a complete GoodSMS collection should create a new DAT file
- updated (PCE) auto-detection of bit-swapped files (by dbjh; thanks to Cowering for the info)
- updated (PCE) -mgd automatically bit-swaps the file if it is detected as being in Japan "mode" (by dbjh)
- updated (PCE) -smg automatically bit-swaps the file if it is detected as being in U.S.A. "mode" (by dbjh) I don't know if this is correct. Please give feedback
- added (GB) -logo restore ROM logo character data (offset: 0x104-0x134) (by NoisyB)

1.9.8-3
- added (SNES) -xswc-super option to force 32 Mbit dump (by John Weidman)
- updated (SNES) enabled -hi & -nhi for -xswc-super, -xswc (dumping) and -xfig (dumping) (by dbjh)
You should explicitly specify the parallel port address when you use -hi or -nhi in combination with one of the mentioned dump options
- updated (Genesis) fixed problem with -multi that caused problems with some games when run on the MD-PRO (by dbjh)
- updated (SNES, Genesis, PCE, SMS, Game Gear & GB) -mgd now produces correct filenames. This time for real! :-) (by dbjh; thanks to acem77 for testing and feedback)
- added (SNES) -xswcr send/receive RTS data to/from Super Wild Card*/(all)SWC (by dbjh)
- updated (PCE) reversed how -mgd & -smg work. -mgd bit-swaps a file if it is detected as not being bit-swapped ("Japan mode"/"unencrypted"). -smg bit-swaps a file if it is detected as being bit-swapped ("U.S.A. mode"/"encrypted") (by dbjh; thanks to kyuusaku for the feedback)
Note that if you want to play a game with an MGD2 on a PC-Engine that you have to manually bit-swap the file with -swap (or specify -int while converting).
- updated (SMS) improved detection of SMS and Game Gear files. In most cases specifying -sms is no longer necessary (by dbjh)
- added (SMS) -chk fix checksum (by dbjh)
- updated (PCE) it's Magic Super Griffin, not Super Magic Griffin. Thus the option -smg has been renamed to -msg (by dbjh; thanks to kyuusaku for the info)
- added (PCE) -xmsg send/receive to/from Magic Super Griffin (by dbjh; thanks to kyuusaku for testing)
- added (PCE) -f fix region protection (by dbjh; thanks to kyuusaku for testing)
- updated (NES) -ffe writes correct headers for the NES games that actually run on the Super Magic Card (by dbjh; thanks to kyuusaku for the info and testing)
- added (NES) -xsmc send to Super Magic Card (by dbjh; thanks to kyuusaku for testing)
- added (NES) -xsmcr send/receive RTS data to/from Super Magic Card (by dbjh)
- added (all) -pattern=FILE change ROM based on patterns specified in FILE (by dbjh)
- added (N64) -swap2 word-swap ROM (1234 <-> 3412) (by dbjh)
- added (SNES) -xgd3r & -xgd6r send/receive RTS data to/from Game Doctor SF3/6/7 (by John Weidman) -xgd3r can currently only be used for sending
- added (SNES) -gd3s convert emulator *.srm (SRAM) to GD BRAM format (by dbjh)
- updated (SNES) added crack for Front Mission - Gun Hazard (by dbjh; many thanks to John) This crack is only necessay when the game is modified, for example by -f.
- updated (SNES) added NTSC/PAL fix for Pop'n Twinbee (by dbjh)
- updated (SNES, Genesis, PCE & NES) (dumping) functions for FFE copiers and Pro Fighter should work correctly with very fast PCs (by JohnDie)
- updated (N64) added work-around for old bug in DJGPP and Solaris. Now -swap, -swap2, -v64 and -z64 work correctly for large files (larger than 8 or 12 MB respectively) when using the DOS or Solaris port of uCON64 (by dbjh)
- updated (Genesis) replaced -pal with -region=CODE. Now it should be possible to create multi-game files for the MD-PRO that work on all three console types (by dbjh; many thanks to SamIAm for the info that led me to the idea)

1.9.8-4
- updated (all) fixed 2 bugs in code of -pattern (by dbjh)
- added (SNES) -xfigc and -xswcc option to transfer SRAM to/from cartridge in *Pro Fighter* and Super Wild Card copiers (by JohnDie)
- added support for Linux/PPC (by dbjh; thanks to Tobias Pflug and Misty De Meo)
- updated (SNES, Genesis, PCE & NES) fixed subtle bug in code of FFE dumping routines (by dbjh; thanks to Neill Corlett for pointing this out)
- updated (SNES) implemented SRAM size display for Super FX ROMs (by JohnDie)
- updated (SMS) fixed bug that caused -chk not to work for uninterleaved files with a header (by dbjh)
- added support for Mac OS X (including libdiscmage) (by dbjh; many thanks to Steve Paige for his help)
- added (SNES) -xswc-dm=MODE specify SWC dump mode (by dbjh)
- removed (SNES) -xswc-super, use -xswc -xswc-dm=1 instead (by dbjh)
- updated (all) uCON64 won't accept a parallel port address without using --port anymore (by dbjh)
This used to be possible:
ucon64 <transfer option> <rom> <parallel port address>
Now you should use a command like this:
ucon64 <transfer option> <rom> --port=<parallel port address>
Or of course, if uCON64 automatically detects the right port or if you have specified the correct port in the configuration file, a command like this:
ucon64 <transfer option> <rom>
This change removes the requirement of specifying the parallel port address when using additional command line options (switches) like -xfalm or -xswc-dm. It also prevents uCON64 from accessing I/O ports not associated to the parallel port if you specify additional transfer switches while <rom> has a name that starts with a number
- updated (SNES, Genesis, PCE, SMS, Game Gear & GB) -mgd produces correct index files (MULTI-GD) (by dbjh)
- updated (SNES & Genesis) -s produces an index file if the ROM dump is in MGD format (by dbjh)
- added support for ppdev (GNU/Linux-only) (by dbjh)
This solves two problems:
1.) It's no longer necessary for uCON64 to be setuid root in order to communicate with a backup unit. Just make sure /dev/parport<n> has the right permissions or get yourself added to the correct group
2.) Non-standard parallel port addresses do not have to be specified. uCON64 still uses the first parallel port by default. It's possible to override that by setting parport_dev in the configuration file or by setting an environment variable
Use the configure option --enable-ppdev to enable the code
- added (all) -md5 calculate MD5 checksum of ROM (by NoisyB)
- added (all) -sha1 calculate SHA-1 checksum of ROM (by NoisyB)
- added (GBA) support for the Flash 2 Advance (Ultra); options are -xf2a (transfer ROM data), -xf2ac=N (dump N Mbits), -xf2as (transfer 256 kB of SRAM data) and -xf2ab=BANK (transfer 64 kB of SRAM data to "bank" BANK) (by NoisyB and dbjh, based on source code of Ulrich Hecht and David Voswinkel; many thanks to David Voswinkel for testing the parallel port code)
- added (GBA) -xf2amulti=SIZE send multiple ROMs to the F2A. You should not specify a loader file on the command line as a file argument. Specify one in the configuration file or set an environment variable (by dbjh)
- added (SNES) -dnsrt restore name, region and checksum from NSRT header and remove it (by dbjh)
- updated (SNES) fixed shameful bug that caused -chk and -n not to work correctly for interleaved ROM dumps (by dbjh)
- updated (SNES) added/updated code to dump special-chip cartridges. Now it's possible to dump Super FX (2), S-DD1, SA-1 and SPC7110 cartridges, but see the comment in swc.c! (by JohnDie)
- updated (SNES) made -xswc-dm active for -xswcc so that SRAM data can be transferred to and from Super FX 2 cartridges (by dbjh)
- updated (SNES) renamed -xswc-dm to -xswc-io, because it can also be used for sending an SRAM file (by dbjh)
- updated (GBA) made -xfalmulti use gbaloader to be consistent with -xf2amulti. So, don't specify a loader as file argument anymore (by dbjh)

2.0.0
- updated (GBA) fixed F2A USB send code (by dbjh; many thanks to David Gauchard for feedback, testing and sending a patch to fix the problem)
- updated (N64) cleaned up Doctor V64 Junior transfer source code (by dbjh; thanks to TenOfTen and GameCopierUser0666 for testing)
- updated (SNES) added new SWC "I/O mode" 0x100, dump BIOS (by dbjh)
- updated (GB) improved ROM info (by dbjh)
- updated (GB) fixed problem with dumping "Rocket Games" cartridges with the Game Boy Xchanger (by dbjh; thanks to Anna Kubisty for reporting the problem and testing, and thanks to Cowering for his help and providing us with the necessary information)
- updated (GB) cleaned up Game Boy Xchanger transfer source code (by dbjh; many thanks to Anna Kubisty for testing)
- added (DC) --scr scramble 1ST_READ.BIN for selfboot CDs (by NoisyB)
- added (DC) --unscr unscramble 1ST_READ.BIN for non-selfboot CDs (by NoisyB)
- added (DC) --mkip generate IP.BIN file with default values (by NoisyB)
- added (DC) --parse=TEMPLATE parse TEMPLATE file into a IP.BIN (by NoisyB)
- updated (SNES) corrected output of -dbuh (by dbjh)
- added (GB) --xgbxm try to enable EPP mode (by dbjh)
- added (SMS/Game Gear) --xgg & --xggs send/receive ROM/SRAM to/from SMS-PRO/GG-PRO flash card programmer (by dbjh; thanks to timofonic and Leo of ToToTEK Multi Media for providing us with the necessary information, many thanks to Walter van Niftrik for testing)
- added (PCE) --xpce send/receive ROM to/from PCE-PRO flash card programmer (by dbjh; thanks to timofonic and Leo of ToToTEK Multi Media for providing us with the necessary information)
- added (PCE) --multi create a multi-game file for use on a PCE-PRO flash card (by dbjh)
- added (SMS/Game Gear) --multi create a multi-game file for use on an SMS-PRO or GG-PRO flash card (by dbjh; thanks to Walter van Niftrik for his patch and for testing)
- added (SMS/Game Gear) --xggb=BANK send/receive SRAM to/from SMS-PRO/GG-PRO BANK (by dbjh; thanks to Walter van Niftrik for the suggestion and testing)
- added (Genesis) --xmdb=BANK send/receive SRAM to/from MD-PRO BANK (by dbjh)
- added support for I/O port driver DlPortIO to the Windows ports. See the FAQ for more information (by dbjh)
- the Windows versions of uCON64 won't crash anymore without a (working) I/O port driver under Windows NT/2000/XP. They display a helpful error message instead (by dbjh)
- updated (GBA) improved recognition of GBA files and fixed start address information (by dbjh)
- updated (GBA) added support for Linux 2.5 (and later) to F2A USB code (by dbjh; thanks to colle for sending a patch and testing)
- added support for OpenBSD (by dbjh; thanks to timofonic for testing)
- added (N64) --xcd64, --xcd64b, --xcd64s, --xcd64f, --xcd64e, --xcd64m & --xcd64p transfer ROM/boot emu/SRAM/flash RAM/EEPROM/memory pack data to/from CD64 (by dbjh; thanks to Ryan Underwood for libcd64 and testing)
- added (Genesis) support for Mike Pavone's Genesis/Sega CD transfer cable (by dbjh; thanks to Mike Pavone for the information and thanks to timofonic for his PR work ;-)
- updated (SNES) -gd3 does not produce 28 Mbit HiROM files anymore, it automatically pads them to 32 Mbit (by dbjh)
- added (Genesis) support for Cyan's Megadrive ROM copier (by Cyan Helkaraxe and dbjh; thanks to timofonic for his PR work)
- moved and split some files in the codebase and changed the workflow. Adding a new option/function now requires only two changes in the code (by NoisyB)
- added (all) --dual show ROM as dualdump (by NoisyB)
- added (all) --code show ROM as code (by NoisyB)
- added (all) --print show ROM in printable characters (by NoisyB)
- added (all) --findi find STRING in ROM and ignore case of alpha bytes (by NoisyB)
- added (all) --findr find STRING in ROM but look also for shifted/relative similarities (by NoisyB)
- added (NeoGeo Pocket) --xpl send/receive ROM to/from Pocket Linker, --xpli show information about inserted cartridge & --xplm try to enable EPP mode (by Walter van Niftrik)
- added (SNES) --multi create a multi-game file for use on a Super Flash flash card (by JohnDie)
- added (SNES) --xsf send/receive ROM to/from Super Flash card, --xsfs to send/receive SRAM to/from Super Flash card (by JohnDie)
- updated (Genesis) added support for 32 Mbit Intel MD-PRO flash card (by dbjh; thanks to Marc Haisenko for sending a patch and testing)
- updated (Genesis) fixed -n and -n2 (-n did what -n2 should do and vice versa) (by dbjh)
- added (Genesis) support for splitting and joining binary (Magicom) files (by dbjh; thanks to T. Reid for the information)
- updated (NES) fixed -dumpinfo so that the year field is read correctly from the dumper info file if it has more than 2 digits (by dbjh)
- updated (SNES) --swcs, --figs, --ufos & --gd3s now also work for backup unit SRAM files, i.e., files with a header (by dbjh)
- updated (SNES) fixed a bug that caused several headerless dumps to be detected as SWC RTS or SWC SRAM files (by dbjh; many thanks to Dweezledap for reporting this bug and for testing)
- updated (N64) added support for 6105 boot codes to check sum routine (by dbjh)
- updated (SNES) fixed some other issues with auto-detection (by dbjh; many thanks to Dweezledap for reporting these problems and for testing)

2.0.1
- updated (GB) internal name is 15 characters long only for GBC games. For GB and SGB games it's 16 characters long. Updated ROM info and -n (by dbjh; thanks to Anna Kubisty for reporting the problem and info)
- added (all) --xreset reset parallel port (by dbjh; thanks to Cyan Helkaraxe for the idea)
- added (GBA) --sc convert to Super Card (CF to GBA Adapter)/SCZ; enables "Saver patch", "restart to Menu" and "Real Time Save" (creates SAV and SCI template) (by NoisyB)
- updated (NES) added support for new iNES header. Now --ntsc & --pal work also for iNES files (by dbjh)
- updated (SMS/Game Gear) improved header length detection (by dbjh; many thanks to Dweezledap for testing)
- added (N64) support for remaining 6101, 6103, and 6106 bootcodes (by Parasyte)
- added (Coleco) recognition of Coleco ROMs (by NoisyB)
- added (Virtual Boy) recognition of Nintendo Virtual Boy ROMs (by NoisyB)
- updated (SMS/Game Gear) --smd produces a proper SMD header (by dbjh)
- updated (SMS/Game Gear) --smd does not interleave SMS or Game Gear files anymore. As far as we know, no backup unit produces or is able to handle interleaved SMS or Game Gear files (by dbjh; thanks to Matthias for verifying this with his SMD)
- added (SNES) --idnum=NUM make --gd3 produce filenames where first file has numerical identifier NUM, next NUM + 1, etc. (by dbjh)
- updated (all) added alternative options for --rr83 & --force63 (--r83 & --rjoliet respectively) (by NoisyB)
- updated (all) improved --r83 & --rjoliet (by dbjh)
- added (NDS) recognition of Nintendo DS ROMs (by NoisyB)
- added (Atari) recognition of Atari VCS 2600 ROMs (by NoisyB)
- added (all) --hfind=HEX find HEX codes in ROM (wildcard: '?') (by NoisyB)
- added (all) --hfindr=HEX like --hfind but looks also for shifted/relative similarities (by NoisyB)
- added (all) --dfind=DEC find DEC codes in ROM (wildcard: '?') (by NoisyB)
- added (all) --dfindr=DEC like --dfind but looks also for shifted/relative similarities (by NoisyB)
- updated (PCE) --multi now creates a multi-game file that will actually work on the PCE-PRO (by dbjh; many thanks to Bryan Lama for reporting this bug and for testing)
- updated (PCE) --xpce now correctly handles 3 and 4 Mbit games that are part of a multi-game file (by dbjh; thanks to Bryan Lama for testing)
- updated (PCE, Genesis & SMS/Game Gear) --multi now produces more efficient multi-game files which results in shorter upload times (by dbjh)
- updated (PCE, Genesis, SMS/Game Gear & SNES) all transfer options for ToToTEK devices now check for the presence of the device (only the upload ROM options used to do the check) (by dbjh)
- added (all) -r process subdirectories recursively (by NoisyB and dbjh)
- updated (SNES) improved reliability of --xgd3 (should reduce the frequency of "File Size Error !") (by dbjh)
- added --help[=WHAT] WHAT=long,pad,dat,patch,backup,disc. Help output is now smaller (by NoisyB)
- added (SNES) --mksrm create *.srm (SRAM) file with size based on ROM information (by dbjh)
- updated FAQ with explanation about how to configure uCON64 for backup unit I/O (through a parallel port) on 64-bit Windows (XP/2003/Vista/7/8/8.1/10) (by dbjh)
- added (SNES) --xqd16 send ROM to Quickdev16 (by dbjh; thanks to David Voswinkel for sending a patch)

2.0.2
- updated (SNES) --xqd16 can be aborted by pressing q on Mac OS X too (by dbjh; many thanks to David Voswinkel for testing and sending a patch)
- updated (NES) --gg works properly for games using a mapper (by dbjh; thanks to eadmaster for sending a bug report)
- updated (NES) --gg no longer accepts 6 digit codes. It lists all corresponding 8 digit codes instead when given a 6 digit code (by dbjh)
- updated (Genesis) --gg modifies 2 bytes instead of 1 (by dbjh; thanks to eadmaster for reporting the issue and testing)
- updated (Genesis) --ggd, --gge and --gg correctly handle Genesis patch values (by dbjh; thanks to eadmaster for reporting the issue and testing)
- updated (SMS/Game Gear & GB) --gg can use the check byte (by dbjh)

2.0.3
- updated (NDS) fixed stupid mistake in reported device capacity (by dbjh)
- updated (NDS) fixed issue that caused ROMs with an incorrect SNES backup unit header to be detected as Nintendo DS ROM dumps (by dbjh)
- updated (SNES) MinGW and Visual C++ ports can display colors again for --dbuh (instead of ANSI escape sequences) (by dbjh)
- updated (SNES) fixed edge case in code of --dbuh for headered ROMs that are not recognised as being for a specific backup unit (by dbjh)
- updated (all) upgraded unzip to version 1.01e. Did the same for libdiscmage (by dbjh)
- updated (N64) fixed problem in Cygwin port of libcd64 with loading I/O drivers (by dbjh)
- updated (all) fixed --hfind, --hfindr, --dfind and --dfindr, which I broke in 2.0.1. Also, 0 is no longer a wildcard and can be properly searched for. Improved handling of non-printable characters (by dbjh)

2.1.0
- added (SNES) preliminary support for native Super UFO Pro 8 SD file format. Use --ufosd to convert a file to Super UFO Pro 8 SD format. More information is required for a full implementation and any help will be appreciated (by dbjh; thanks to cage for his help)
- added (SNES) --ufosds convert *.srm (SRAM) file to Super UFO Pro 8 SD (by dbjh; thanks to cage for the SRAM files)
- updated (SNES) added crack for Diddy's Kong Quest & Dixie Kong's Double Trouble that makes those games run properly on the Super Flash. It has been added to snescopy.txt, not to the internal cracks, because it may interfere with the already present cracks of those games. Apply it with --pattern (by dbjh, based on post by Tomy of ToToTEK on ToToTEK's Help & Support Forum)
- updated (all) fixed --xreset to really remove power from all programmable pins (by dbjh)
- added (all) support for EPP when using a PCIe parallel port card that has its ECP Extended Control register at a non-standard offset, i.e., most PCIe parallel port cards. Specify the offset in the configuration file by changing the line that starts with ecr_offset=. See the FAQ (question 53 and 54) for a more elaborate explanation (by dbjh)
- updated (all) fixed several mistakes in how different pieces of code tried to enable EPP or simply relied on a BIOS to have configured it right. As a result the meaning of the switches --xfalm, --xgbxm and --xplm has been reversed (the associated options use EPP mode by default and use SPP as fallback). Another consequence is that UserPort can no longer be used as I/O driver (by dbjh)
- updated (SNES) improved --id to the point where its help text can be shown (by dbjh)
- updated (SNES & Genesis) fixed several edge cases in MGD splitting code (by dbjh)
- updated (SNES) fixed crash when splitting files in Game Doctor SF3 format >= 100 Mbit (by dbjh)
- updated (all) made --pattern more verbose when -v is specified (by dbjh)
- updated (GBA) made --crp more verbose when -v is specified (by dbjh)
- updated (SNES) made -k, -f & -l more verbose when -v is specified (by dbjh)
- updated (Genesis & PCE) made -f more verbose when -v is specified (by dbjh)
- updated (all) fixed bug in code of --pattern that caused changes to be omitted in the output file (by dbjh)
- added (SNES & Genesis) --smgh split ROM for MGH. Its main purpose is splitting SNES HiROM games in MGH format. Splitting is required to make them run with an MGH (by dbjh; thanks to Mystic_Merlin for information and testing)
- added (SNES & Genesis) --mgh convert to Magic Game Hunter/MGH format. For SNES this does the same as --gd3, except that the resulting file will have an MGH name and no header. For Genesis this does something very similar to --mgd, but the resulting file will have an MGH name. For both consoles an MGH name file will be produced (by dbjh; thanks to Mystic_Merlin for information and testing)
- updated (NES, SNES & Genesis) fixed --ns (by dbjh)
- updated (SNES) fixed bug in checksum calculation code if the cartridge size byte of the internal header is 0 (by dbjh; thanks to Mystic_Merlin for providing the PD ROM that triggered the bug)
- updated (SNES) added support for a few more cartridge configurations to --ufosd. Still more information is needed, specifically about the header of 8 Mbit HiROMs (by dbjh; thanks to Mystic_Merlin for sending the output of --dbuh for dumps made with his UFO SD)
- updated (SNES) --ufosd fixes the checksum and pads the output to a valid size for the UFO SD (by dbjh; thanks to Mystic_Merlin for information and testing)
- added (N64) support for Nintendo 64 DAT files containing CRC32 values of ROMs in Mr. Backup Z64 format, like what DAT-o-MATIC produces. It can be turned on by setting the property variable n64_dat_v64 to 0. See the FAQ question 57 (by dbjh)
- updated (all) fixed double suffix issue when using DAT-o-MATIC DAT files (by dbjh; thanks to eadmaster for reporting the issue)
- updated (SNES) completed --ufosd by adding support for 8 Mbit HiROM (by dbjh; thanks to Mystic_Merlin and cage for the information)

2.2.0
- added (GB) --gp2bmp convert Game Boy Printer data (produced by --xmccl) to BMP (by dbjh; based on version of gblnk (by Chris McCormick) improved by Difegue. Many thanks to Difegue for providing me with Game Boy Printer data. Thanks to Martin Eyre for documenting his findings about Game Boy Printer commands)
- added (SNES) --sminis=ID convert *.srm (SRAM) file to SNES/Super Famicom Classic Mini (hakchi2) format for game with identifier ID (by dbjh)
- added (SNES) --smini2srm convert SNES/Super Famicom Classic Mini (hakchi2) SRAM data to *.srm (SRAM) file (by dbjh)
- added support for NetBSD (by dbjh; thanks to Thomas Klausner for his help)
- updated support for OpenBSD (64-bit) (by dbjh)
- updated (all) made -o also work for --rrom, --r83 and --rjoliet, just like the other rename options (--rdat, --rl and --ru) (by dbjh)
- updated (SNES) improved reliability of GDSF communication for PCs with a parallel port that supports ECP (built-in or PCIe parallel port card). At last. It is essential to correctly specify ecr_offset for this to work (by dbjh; many thanks to Mystic_Merlin for testing)
- updated (SNES) improved --ufosd by adding specific support for 10 and 12 Mbit HiROMs and implementing a generic way to set the SRAM mapping bytes (by dbjh; thanks to Revenant for the information and Trenton_net for testing)
- added (SNES) --xufosd send ROM to Super UFO Pro 8 SD. Be sure to use a tool like Zadig to add libusb-0.1 (libusb-win32) support (by dbjh; thanks to Revenant for the information and Trenton_net and Revenant for testing)
- updated (SNES) added NTSC/PAL fix for Soul Blazer F/G and Super Metroid E (by dbjh; thanks to Mystic_Merlin)
- added (SNES) work-around for using the Game Doctor SF6 protocol for parallel ports that do not support reading from the Control register. It is good enough to at least allow dumping saver data and SRAM. To enable the new functionality assign a value other than 0 to the variable gd6_send_byte_delay. See the FAQ question 55 for details (by dbjh; many thanks to NorQue and Mystic_Merlin for testing)
- updated (SNES) made --gd3 specify a pass-through mapping for LoROM DSP games (by dbjh)
- updated (SNES) added proper recognition of Pro Fighter headers of LoROM DSP games with 2, 8 or 32 kB SRAM (by dbjh)
- updated (SNES) added interpretation of remaining part of GD3 header (DRAM and SRAM mapping) to --dbuh (by dbjh)
- updated (SNES & Genesis) fixed split file detection for formats other than (M)GD and MGH which I broke in 2.1.0 (by dbjh)
- added (all) --split=N split ROM in parts of N Bytes (including possible header). This is a generic file splitting option. Use -s, optionally in combination with --ssize=SIZE to split files for use with a specific console or backup unit (by dbjh)
- added (SNES) support for Super Magicom/SMC IC2 file format. This format is used by several ancient backup units, including the Twin Supercom, Future Supercom Pro.9 and UFO Super Drive PRO 6 HYPER VERSION in order to run HiROM games up to 16 Mbit. Use --ic2 to convert a file to Super Magicom/SMC IC2 format (by dbjh; thanks to Mystic_Merlin for info and testing)
- updated (SNES) fixed bug in --ufo that caused it to produce incorrect headers for games that do not use SRAM (by dbjh; thanks to Mystic_Merlin for feedback and testing)
- updated (SNES) fixed bug in -j for files in UFO format smaller than or equal to 8 Mbit (by dbjh)

2.2.1
- updated (SNES) fixed checksum calculation of SNES/Super Famicom Classic Mini SRAM data of special chip games like Super Mario RPG, Super Mario World 2 - Yoshi's Island, Hoshi no Kirby Super Deluxe and Star Fox 2 (by dbjh)
- added (SNES) --range=OFFSET1:OFFSET2 specify range for calculating checksum of SNES/Super Famicom Classic Mini (hakchi2) SRAM data. Can be used in combination with --sminis for special chip games (by dbjh)
- added (SNES) --xic2 send ROM to SMC IC2 compatible backup unit (by dbjh; thanks to Mystic_Merlin for finding this out and for testing)
- removed (PSX/N64) --xdex, because the underlying code had nothing to do with the DexDrive (by dbjh)
- added full MinGW-w64, 64-bit Visual C++ (2015 & 2019) and 64-bit Cygwin build support (including libdiscmage and libcd64); improved 64-bit support in general (by dbjh)
- libdiscmage support is no longer enabled by default. Use the configure option --with-libdiscmage to enable support (by dbjh)

2.2.2
- added proper support for Clang to the makefiles (by dbjh)
Indicate that you want to use Clang by setting the environment variable CC. Either at configuration time:
$ CC=clang ./configure
Or at build time:
$ CC=clang make
- updated (SNES) implemented dumping for --xgd6. 15 years late, but still the only tool to do it :-) (by dbjh; thanks to Kristian Gunstone for making me try to explain why it could not be done ;-) )
- restored support for NetBSD/i386 and OpenBSD/i386 in makefile of libcd64 (by dbjh)
- updated FAQ with explanation about how to compile uCON64 on macOS with support for USB (by dbjh)
- fixed some issues in MinGW, MinGW-w64 and Visual C++ ports that made them choke on files larger than 2 GB. On 32-bit UNIX try adding -D_FILE_OFFSET_BITS=64 to CFLAGS to fix the issues (by dbjh; thanks to Mystic_Merlin for testing on Windows 98)
- updated (all) upgraded unzip to version 1.1 (by dbjh)
- updated (SNES) --gd3 writes correct SRAM mapping values for Trials of Mana (by dbjh; thanks to Mystic_Merlin for reporting the issue and testing)
- updated (SNES) --gd3 supports 64 Mbit HiROM games. It works at least for the English fan translation of Fire Emblem - Seisen no Keifu (J) (Project Naga, beta version 7) (by dbjh)
- updated (SNES) --gd3 supports up to 64 Mbit LoROM games. It works at least for the 48 Mbit English fan translation of Fire Emblem - Thraki 776 (J) (V.ROM) (Lil' Manster 1.07) (by dbjh)
- updated (all) --hfind and --hfindr accept search strings without spaces (by dbjh; thanks to eadmaster for the feedback)
- renamed (all) --dual to --bit (by dbjh)
- updated (all) --hex, --bit, --code and --print accept an optional end offset (by dbjh)
- added (all) --hreplace=S:R find S and copy R to the start of each match (wildcard: '?') (by dbjh; thanks to eadmaster for the suggestion)

`