Duper 0.71
(c)1998 AshSoft





I.	What's New
II.	What It Is
III.	What's To Come
IV.	Accuracy Notes/Comments
V.	Thanks
VI.	Disclaimer





I.	What's New, Not Necessarily in Order of Importance
------------------------------------------


Version 0.71
	- Fixed launching of ROMs with long filenames, made launching
	  much more reliable
	- Modified GB header handling to 'handle' MBC3 and MBC5, since
	  I don't actually have any info about those
	- Made slight adjustment to MAME zip code to allow for files
	  with >32 character filenames to be extracted properly
	- Took GB ROMs with 512-byte headers into account
	- Added descriptions of licensees in the main list for SNES
	- Greatly sped GB checksum calculation
	- Added maximize/minimize/crude resize handling

Version 0.70
	- UI improvements including full-row selection, perma-
	  highlighting of dupes, dynamic dupe tracking which increments
	  or decrements the unique count as dupes get deleted or
	  modified, and sorting by any column (though the new sort
	  routines are very slow; I'll find a better method soon)
	- Fixed some issues with NES editing
	- Fixed a bug with reading high mapper numbers
	- Added real CRC-32 calculation to NES roms, which will slow
	  things down but make things much more accurate (doesn't
	  include the header/title areas in calculation)
	- If you have a delimited list of NES checksums ('nescrcs.txt')
	  with their matching title, duper will look through it and put
	  the matching checksum's title in the 'Artificial Title' field;
	  this behaves somewhat like the PCEID util for PCE ROMs...
	  feel free to submit lists of additions/corrections to
	  ash@baltimore.crosswinds.net
	- Added ability to launch items to easily test them (very
	  rough around the edges right now...)
	- Added MP3 ID3 tag support, including mass-tagging
	- Added generic comparison of files in zips by their embedded
	  CRCs
	- Sped up zip file processing
	- Better zip support; now actually looks into zips for
	  suitable files instead of assuming there's only one ROM in
	  them
	- Added IPS patching, courtesy of the uCON source.

Version 0.62
	- If you've used duper and felt it processed your files just a
	  littlebit too quickly, try duper's new zip support.  With the
	  advent of Genecyst x.xx I decided to take another stab at it,
	  and lo, here it is, courtesy of the MAME source

Version 0.61a
	- Fixed a typo which caused an undesired feature; Genesis and 32X
	  games were saving the international title in the slots for both
	  international and native titles

Version 0.61
	- With the aid of the snes9x source, greatly improved Hi/LoRom
	  detection, and cleaned up SNES editing to make it more reliable
	- Various little UI tweaks, slight speedups and reorganization

Version 0.60 - First public release
	- Added N64/32X support
	- Greatly improved NES title detection
	- Fixed up the accuracy of SNES info detection
	- SNES split ROM / copier support
	- All kinds of little gui enhancements, multithreading
	- Oh yeah, and now you can edit stuff by double-clicking, or
	  through other various methods of indicating to the computer
	  that, yes, you would like to change something
	- Said hell with zip support, at least for now

Version 0.50
	- Added SMS support
	- Added all kinds of various other stats to all systems but the
	  SMS
	- Disabled zip support in the UI until I can get it working
	- Saving of last path for each system, so when you select a ROM
	  type, it automatically scans the last folder you chose for
	  that type
	- Added ability to remove the settings (currently just last
	  selected type and each type's last path) from the registry
	- Reworked the code again to make the processing functions more
	  modular and accept generic istreams

Version 0.48
	- Added Genesis support
	- Made the list more modular to allow for different systems to
	  have different types of stats
	- Added ability to delete selected files in the list
	- Took that dang mIRC guy out of the about box
	- Attempted zip support

Version 0.40
	- Added NES/SNES support
	- Changed the list box to a list control, allowing for nice
	  output of more stats
	- Added internal filesize to GB stats

Version 0.30 - First numbered version
	- Reads Gameboy titles!  Woohoo!




II.	What It Is
------------------------------------------


Duper is a win32 universal ROM duplicate finder / header editor / etc.
It currently edits most aspects of Gameboy, NES, SNES, N64, Genesis
and 32X ROMs, edits MP3 ID3 tags, converts between Genesis ROM formats,
and cleans dirty NES ROM headers.  It can also be used to save and
compare lists of ROM directories based on information from the ROMs'
headers, providing an easy way to merge large collections.





III.	What's To Come
------------------------------------------


Send well thought-out, intelligent comments/suggestions to
ash@baltimore.crosswinds.net.

- Possibly CRC calculation and artificial title matching for
  more systems.

- Checksum editing and proper calculation for the other systems
  that supports checksums.

- Dealing with 'Smart Card' headers for GB roms, whatever they
  are.

- Zip editing support?  Eh, maybe.  Far in the future.  If you
  find some good public zipping routines, let me know, but for
  now you can damn well unzip it, edit it, and rezip it yourself.

- More ROM type conversion / splitting functions.

- I need to work out some of the inconsistencies I came across,
  like wtf needs to be put in the high nibbles of the super
  gameboy cart licensee bytes.  All the   docs say 'ascii hex
  digit'... that needs some translating.  Not sure if ignoring
  an NES trainer if it exists during CRC calclation would be a
  good idea....  Should the rest of the code be the same either
  way?





IV.	Accuracy Notes/Comments
------------------------------------------


Gameboy
-------
Pretty straightforward, but I need some advice on what to put in
the high nibble of the licensee bytes for Super Gameboy games...
Also, checksum calculation might be in error if the ROM has
extraneous information tacked on at the end.  Should be very
rare, but I'll go ahead and fix this in the next release after
checking on a couple things.  Also, not sure about gb color
issues, MBC3 and MBC5.


NES
---
Everything's pretty accurate.


SNES
----
Everything should be accurate now, but the sizes will often be
somewhat rounded.  The 'size' byte reports pretty vague numbers
for the ROM size, so a 24 Mbit ROM will show up as a 16 Mbit,
etc.


Genesis / 32X
-------------
Should be pretty darn accurate.


N64
---
Anybody have more information on the header info?


MP3
---
Great.


Zip
---
Same here, but I'd like to find a more accurate method of looking
through the central directory than the one I'm using now (which
actually searches the file for individual local file directories)
or that in MAME, which is limited by the size of a buffer and
doesn't work well against zips with large comments....





V.	Thanks
------------------------------------------


The authors of uCON for their IPS patching routine, and probably more
features to come.

Craig Bruce for his CRC-32 calculation routine.

Zafir Anjum and www.codeguru.com for pretty much all the niftier nuts
and bolts of the list control.

Sardu for writing the gee whiz neato emus that got me into emulation,
and just keep getting better and more slick.

The MAME team for their unzipping source, and being generally helpful.

Marat for his neato GB faq.

Y0SHi for his clear and accurate NES doc.

"Comrade" MindRape for his useful SNES doc.

The snes9x team for their source, which helped a bit so far, and will
probably help much more in the future...

The zsnes team for writing an emu which helped me easily check my results.

Felipe XnaK and Volker Oth (dOnut) for their Genesis doc.

Deth, who FUCKING ROCKS THE DAMN CASBAH, and gave me some nifty Genesis
format conversion source/tips.

Flobb, Jabo, and all the noodle people, and everybody else I bugged with
questions.





VI.	Disclaimer
------------------------------------------


This sucker's mine, and here are my rules:
You may only distribute it with this document, and nothing else,
ESPECIALLY NOT ROMS#&%!((&#!%&().  This document may not be changed
in any way, and neither may the Duper executable.  I'm not responsible
for anything damaged through the use of this program, and remember to
back yer stuff up first.  Erm, I'll think of more rules later.