================================= Change Log ==================================
*2011-11-xx
*2012-03-21
*2012-05-26
http://www.mediafire.com/?d4erewg5zbvtjma
*2012-06-20
http://www.mediafire.com/?78v9tp30o82ca2b
*2012-07-01
http://www.mediafire.com/?el57y5whhic2bz7
*2012-07-07
http://www.mediafire.com/?ro6zxax547pnifi
forgot

*2012-11-02
http://www.mediafire.com/?j258gadpvpffpnq
[DC]
delete .offset .toc file
 => integration .log file
create .gdi file
 => need fix index of track2 manually

[other]
create unicode version

*2012-12-28
http://www.mediafire.com/?t84vdvk60cipx3i
support CDG(CD Graphics)
fix Paragraph Boundary

*2012-12-29
http://www.mediafire.com/?6j70xu3awnyfbl6
fix crashing in x86 build
delete bom in unicode build

*2013-01-03
http://www.mediafire.com/?1ruflslt9v975b3
fix checking & data of subchannel

*2013-01-05
http://www.mediafire.com/?octpobk6qnzp7jn
refactoring
improved subchannel data

*2013-01-07
http://www.mediafire.com/?2667q8f7ab1syau
refactoring
add STORAGE ADAPTER DESCRIPTOR log
=> for getting alignmentMask of drive

*2013-01-17
http://www.mediafire.com/?7sbj5nluwtevv47
improved PC Engine CD dumping
1. if subchannel and TOC don't sync, TOC has priority.
2. if audio sector exists in data track, their sector is descrambled.

*2013-01-18
http://www.mediafire.com/?uc2web2xkdw52zx
fix checking subchannel(RelativeTime)

*2013-01-19
http://www.mediafire.com/?w1585tm93k9vso9
fix ReadTOCText function
=> because mmc1 drive isn't defined.

*2013-01-24
http://www.mediafire.com/?l8z42uu6wb0i8un
fix subchannel reading
 plextor + audio only disc => read cd command(0xbe) + read subchannel(0x100[pack])
=> because if R-W channel bit is full on, reading speed is very slow.

*2013-01-29
http://www.mediafire.com/?5sivdapd7ysdpcr
fix cue file of CD-TEXT Disc.

*2013-01-30
http://www.mediafire.com/?931v52igjl4qbr6
fix crash close/stop command.
add OS version log.

*2013-02-03
http://www.mediafire.com/?yej1m0db6b6a7t0
improved CD-TEXT analyze.
=> support unicode flag

*2013-02-22
http://www.mediafire.com/?ldsv1lwebz1lq0d
add Macintosh disc log.
fix x64 reading.
=>padded with a multiple of four the DataTransferLength of CDROM_READ_TOC_EX_FORMAT_FULL_TOC
fix logic
=>if combined offset is plus and can't read lead-out, tool doesn't work.
  Or if combined offset is minus and can't read lead-in, tool doesn't work.

*2013-03-07
http://www.mediafire.com/?j7r14knf62kkzsc
fixed ripping CD-TEXT disc.
improved ripping MCN(EAN) including disc.

*2013-03-09
http://www.mediafire.com/?suyd5pwrb034rsr
fixed ccd file (added FLAGS)
improved ripping CD including INDEX 0 in Track 1 disc.

*2013-03-27
http://www.mediafire.com/?f9sv2rnmg1lgiyt
fixed ripping DVD DL
fixed ISO9660 PVD log
added DiscInformation(0x51) log
added reading floppy (WIP)

*2013-04-07
http://www.mediafire.com/?iiui97cbtvi7v9f
added C2 error log (check only one, not re-read)

*2013-06-19
http://www.mediafire.com/?hf5fr3mmeqvxm6q/
added "pre" argument for ripping index0 in track1 (for SaGaFrontier Original Soundtrack Disc3)
added "isrc" argument for ignoring invalid ISRC (for Valis II[PCE])
Divided log (drive, disc, error)

*2013-11-24
http://www.mediafire.com/?ja083rxnjk7km9l/
rewrote many code
added reread and fix sector for C2 error disc. (Supported C2 error flag in 0xD8 command)
added "add" argument for audio only disc. (offset correction manually)
added "fua" argument for DVD (to defeat the cache)
added store scrambled image to scm file
added output hash (crc32, md5, sha1) to log file.
added check & autodetect data order (main+c2+sub or main+sub+c2)
added check process. (if isobuster running, don't run this tool)
fixed return Win API error log message
fixed ccd file (PregapMode)
improved EAN sector reading
improved ripping GD-ROM
  added "-rgd" command for HD area (integrated "-ra", "-dec", "-split")
  omitted "-dec", "-split" command

*2013-12-17
http://www.mediafire.com/?o9rdgpkq6cmx8qh/
fixed output hash file (support over 4GB file)
fixed create file
  if subdirectory don't exist, create it.
fixed DiscInformation(0x51) log

*2013-12-21
http://www.mediafire.com/?vjo27xx3jgcv37y/
fixed create file
  if subdirectory don't exist, create it. (re-fix)

*2014-01-10
http://www.mediafire.com/?rex9fufshe16k3u/
refactoring
fixed StorageQueryProperty log

*2014-06-21
http://www.mediafire.com/?dv2wb1qp2h2yie1/
rewrote many code
- changed: argment format
- added: reset command (for PLEXTOR only)
- added: /l option (for PlayStation LibCrypt disc)
- added: /m option (for [MCD]WonderMega Collection)
- added: /r option (for ripping from last to first)
- added: cue file for img file
- added: xxx_infolog.txt (for no error info)
- added: using GetProductInfo, CreateMutex
- added: fixes SubRtoW
- added: exec EccEdc.exe
- added: checking main data (A header exist or not) (for [PCE]Faerie Dust Story - Meikyuu no Elfeene)
- added: CDI directive in cue
- added: output a list of file in 3DO disc in xxx_disclog.txt (using the code of http://kaele.com/~kashima/games/3do_dir.html)
- added: PCE log in 1st/2nd sector of 1st track to xxx_disclog.txt
- added: Hash of .img to xxx_disclog.txt
- added: writing multiple indexes for track 1 to cue file
- added: SpeedRead (for PLEXTOR only)
- added: output EEPROM (for PLEXTOR only)
- deleted: CDG directive in cue
- improved: SubQ of adr 2(=EAN sector)(if adr is correct but EAN data is wrong, fixed it.)
- improved: SubQ of adr 3(=ISRC sector)(if adr is correct but ISRC data is wrong, fixed it.)
- improved: ripping AMSF from 00:00:00 to 00:01:74
- improved: /c2 option (support PX-4824)
- fixed: checking a product id of a plextor drive(CD-R   PREMIUM)
- fixed: ripping a floppy disk
- fixed: ScsiGetAddress (Don't call this function if you use a drive via USB.)
- fixed: ripping a MCN sector on LBA 0 in track 1 only disc
- fixed: allocate memory in ReadTOCFull
- fixed: analize SubQ(relative time)
- fixed: transfer length (because speed down gd-rom ripping)
- fixed: c2 error fix logic
- fixed: check CD+G per track (for [MCD]WonderMega Collection)

*2014-10-17
http://www.mediafire.com/?yoejwfgut0p7xeh/
- added: eject command (eject the tray)
- added: start command (spin up the disc)
- added: /f option of cd command (But I don't know whether or not a cache is clear.)
- added: Output log of mode sense (page code: 0x2a)
- added: fix AFrame of Adr 2,3 of SubQ(=MCN, ISRC)
- improved: fix Adr 2 of SubQ(check whether or not adr is correct.)
- improved: fix Adr 2 of SubQ(Sub[19] & 0x0f => 0 and Sub[20] => 0)
- improved: Adr fixing logic
- improved: fix weird tracknum of subchannel
- improved: DC ripping speed
- fixed: c2 file size
- fixed: C2 rereading doesn't work
- fixed: /m option

*2015-02-27
http://www.mediafire.com/?3ojaadqlch27abg/
- added: fix subchannel for GD
- added: padding to 0x55 for unreadable sector
- added: path table record and directory record for CD to _infolog.txt
  => for searching specific file to protect (RingPROTECH => PROTECT.PRO, SafeDisc => 00000001.LT1, 00000001.TMP)
- added: /rc option for CD
  => I don't test it enough because I have a bit of RingPROTECH disc and SafeDisc.
- added: If any of R-W area is padded with 0xff, detect it.
- changed: beep sound
- changed: _disclog.txt for GD
- changed: output a list of file in 3DO code
- fixed: /r option
- fixed: if ModeSense10 is error, exec continuous.
- fixed: SubQ Track
- fixed: Cue file for CDTEXT
- improved: detecting MCN sector

*2015-05-14
http://www.mediafire.com/?jjusoanzbacq7g2/
- added: Plextor scsi drive, PX-S88T
- added: Flag for supporting ModeSense, ReadBufferCapacity, SetCDSpeed
- added: If semaphore time error occurs, exec sleep(25000) (Because if it doesn't exec sleep, next ScsiPassThroughDirect fails.)
- added: /c val4 option (to set c2 offset)
- added: /s option (for reading subchannel precisely)
- changed: devided errorlog.txt to suberrorlog.txt and c2errorlog.txt
- changed: from READ_CD(0xbe) to READ_D8(0xd8) or READ12(0xa8) (for old plextor drive)
- fixed: reread doesn't work from 20150227
- fixed: startstop doesn't work command from 20150227
- fixed: If ReadDiscInformation, ModeSense10, ReadBufferCapacity, SetCDSpeed is alway return TRUE;
- fixed: If GetConfiguration fails, sets CD-TEXT flag manually. (Ultraplex is TRUE)
- fixed: If ModeSense fails, sets drive buffer size manually. (Ultraplex is 512, PX-W1210S is 4096, PX-S88T is 2048)
- fixed: MINIMUM_DRIVE_BUF_SIZE is from 256 to 512.
- fixed: IsValidSubQTrack()
- fixed: Set false SetCDSpeed, 0xd8 & subch 0x08 in PX-W1210TA forcibly
- fixed: Buf size for executing EccEdc.
- fixed: Transfer length for volume descriptor.

*2015-09-13
http://www.mediafire.com/?aiknhj2bescnfff/
- added: /be & /d8 option for cd
- added: check sector for PC-FX 
- added: log file for main channel, exec command
- added: coded about codelock
- added: old scsi drive (Tested PX-12TS, PX-20TS)
- changed: log file name
- changed: scramble.bin to generating dynamically (thanks gorelord4e)
- fixed: IsValidSubQIdx
- fixed: didn't apply the combined offset to the audio only disc
- fixed: detect adr sector
- fixed: Label Gate CD, XCP disc
- fixed: SafeDisc 3.15.XXX, 1.35.000
- fixed: data length disc that isn't per 2048byte (e.g. commandos - BEL)
- fixed: LBA counter
- fixed: smartE disc
- fixed: SafeDisc when using 0xBE
- fixed: check main sector
- fixed: Output volume descriptor for CDI (caesar's boxing)
- fixed: audio command (LBA -75 and lead-out)
- fixed: check arg
- fixed: DirectoryRecord
- fixed: compare string of directory (strncmp -> _strnicmp)
- fixed: invalid track number of first pregap sector
- improved: c2 error fixing
- deleted: streaming bit for DVD
- deleted: MINIMUM_DRIVE_BUF_SIZE
- deleted: /c val4 option

*2015-11-28
http://www.mediafire.com/?q56ny0liey5tioi/
- changed: checking MCN ISRC sector before ripping per track
      (for PC Game Best Series Vol. 42 - J.B. Harold Series: Kiss of Murder - Satsui no Kuchizuke)
- added: /se option for securom
- added: pack option in /be for cd command
- added: lead-in subchannel P, R-W fixing (Q haven't coded yet)
- added: some command-line message
- added: a debug log when it fails the reading cd
- fixed: a disc having the DirectoryLength above the MaximumTransferLength(65536, 131072...)
- fixed: overdumped .img file except plextor drive
- fixed: Don't read over the MaxTransferLength in checking exe
- fixed: allocate memory from a variable-length to a fixed length (delete realloc)
- improved: checking EXE, reading DirectoryRecord

*2016-01-27
http://www.mediafire.com/?cq86367z87fyef2/
- changed: Visual Studio 2013 to 2015
- added: /raw option for cd command (highly experimental, buggy)
   => For the multi-session at present. I don't test it enough. Probably can get
    the lead-out of the 1st session but can't get the lead-in of the 2nd session.
- deleted: /i option for valis II etc. (specific ISRC)
   => Because check by the crc16.
- improved: checking adr sector
- fixed: didn't write ISRC in cue and ccd from 2015-11-28 ver.
- fixed: dividing the track for multi-session disc which the track 02 is session 2
- fixed: crash using 'audio' command in the disc with ISRC sector

*2016-02-29
http://www.mediafire.com/?sv0d434ujk92007/
- changed: some log message
- added: the eeprom log of PLEXTOR PX-712, PX-755, PX760 (the value of BookType, AutoStrategy)
- fixed: didn't work /se option from 2016-01-27 ver.
- fixed: error check of the fd command.

*2016-04-11
http://www.mediafire.com/?z4wj8lg5ax8fdf5/
- added: read/write xml for the datfile (using xmllite).
- fixed: crash occured with relative path.

*2016-06-02
http://www.mediafire.com/?mhif8c7s3iayqac/
- added: analyze specific subchannel of psx
- added: single C2 Error allocation if possible (routine is much faster in debug build) (coded by reentrant)
- improved: analyze subchannel of the MCN Sector and the track 1 only disc.

*2016-06-18
- changed: some log message
- fixed: cue of track 1 only and index 2 disc (Jurassic Park Interactive (Japan))

*2016-08-05
- updated: Visual Studio 2015 Update 3
- added: /be, /d8 option in data command
- fixed: forgets to add .bin to the EccEdc command line in data command

*2016-11-19
- added: [WIP] support protected disc (cd.idx, protectCDDVD)
- added: support c2 error bit 0x10 (C2 and Block Error Bits) (I don't know this bit works)
- fixed: DVD-9 reading size (only drive that fail to exec ReadTOC)

*2017-03-03
- added: /rc in data command
- added: Descramble MainChannel in data command
- added: subchannel offset (I confirmed PXS88T, TS-H353A)
- changed: if start LBA is 0 about data command, it doesn't check lead-in
- changed: changed CreateDirectory to MakeSureDirectoryPathExists
            => Creates all the directories in the specified path, beginning with the root.
- fixed: "PathRenameExtension" fails to rename if space is included in extension.

*2017-04-06
- added: /g option, /q option
- added: Log to mainError.txt
- added: Detect a weird subchannel (all 0x33 of [3DO] MegaRace (Japan))
- changed: Some command line message
- improved: Subchannel ripping of SecuROM (added subIntention.txt)
- improved: GD-ROM ripping (added rereading)
- fixed: DVD ripping speed
- fixed: /a option (combined offset is injustice)
- fixed: Reading DirectoryRecord (some [SS] discs)
- fixed: Audio disc reading mode (Not force /be)
- fixed: Checking subchannel ([SS] Saturn Super Vol. 8 (Japan) and GD-ROM)
- fixed: Subchannel offset (if ADR of 1st sector isn't 1, offset is injustice)

*2017-04-11
- added: exec EccEdc for GD-ROM dumping
- changed: in gd command, /s 0 is default (because /s 1 is very slow for GD-ROM dumping)
- changed: wait time for GD-ROM dumping (5000 millisec -> 30000 millisec)
- fixed: some log

*2017-05-07
- added: /np /nq option
- changed: Option name /g -> /nr, /l -> /nl, /se -> /ns
- changed: Some log message
- changed: Disabled SSE2 of vcxproj (for old cpu)
- changed: MaximumTransferLength is limited to 64KB (can't read 128KB)
- improved: Checking argument (check command-length)
- improved: Subchannel ripping of SecuROM
- fixed: Reading DirectoryRecord
- fixed: Output unnecessary hash

*2017-07-02
- added: Reading TOC ATIP for CD-R, CD-RW
- added: Reading path table, directory record for DVD
- changed: Directory record size from 4096 to 8192
- changed: Some log message
- changed: Sector Outputted to log to IsoBuster-like sector
- fixed: Ripping range of SecuROM
- fixed: Reading path table record
- fixed: data sector is descrambled when sync and mode valid

*2017-07-28
- added: /ss option (scan sector for protectCD-VOB)
- changed: Option name is /rc -> /sf (scan file)
- changed: Directory record size from 8192 to 16384
- changed: Data sector is descrambled when sync is valid and mode is valid 
           and there is the reverted sector, and unknown mode but reserved byte all zero
- changed: The LBA of FULL TOC is used only the multi session disc.
- fixed: Reading path/directory record (support the logical block size under 2048 byte)
- fixed: The transfer length to read path/directory record for DVD
- fixed: Short of the shifted sector if the combined offset is 2352*n (n is integer)

*2017-08-18
- added: adr 06 of the subchannel (some Amiga CDTV disc)
- added: No data track but there is some data sector (some CD-i disc)
- added: Corrupted directory record disc (Amiga tools 4)
- changed: Some log message
- changed: the max size to search the exe file when use /sf option (1024 -> 4096)
- fixed: Disc that the session 2 starts from the track 2

*2017-10-10
- changed: /r option is used only by data command
- changed: /raw option is used only by the multi-session disc
- changed: Enable multiple execution
- fixed: Getting the subchannel offsets (Resident Evil 2 Disc 2 (Eu))
- fixed: Descrambling from 00:01:00 to 00:01:74 when used /p option
- fixed: GMT of the CD log, UTC of the DVD log
- improved: Checking argument (cd, dvd)
- improved: Reading directory record (SimCity 3000 (USA))
- improved: Reading DVD structure

*2017-12-10
- added: Reading path table & directory record of GDROM HD Area
- added: Reading joliet file system (if iso9600 didn't read)
- added: Writing the hash of the toc vs. subs desync disc and the scrambled main channel (.scm file)
- added: Argument of /f option (to delete the drive cache per specific value)
- changed: Rename _sub.txt to _subReadable.txt
- fixed: Dumping of GDROM (didn't work from 2017-08-18)
- fixed: 1st sector of the pregap sector has invalid index of the subchannel
- rewrote: Recovering C2 error (only plextor. not support no-plextor drive now)
            => I definitely understood the plextor drive has -1 sector offset about C2 error.

*2018-01-27
- added: Dumping of DVD which is the parallel track path and dual layer
- changed: Visual Studio 2015 to 2017
- fixed: Dumping of audio disc (didn't work from 2017-12-10)
- fixed: Rewrite .c2 file if c2 errors exist. 
          =>  if unfixed errors exist with EdcEcc.exe or edccchk or cdmage though .c2 file rewritten is all zero byte,
              maybe the drive misses to report the c2 error.

*2018-03-04
- added: bd command
- added: mds command
- added: /am option
- changed: Doesn't check reading lead-in/out when uses audio command.
- fixed: audio/data command (didn't work from 2017-12-10)
- improved: Dumping of SafeDisc (only Skips rereading for safedisc 312 errors)
             => The problem is that dic skips rereading if unintentional error is also 312.
- improved: Dumping of PC-FX disc (Super PCEngine Fan Deluxe - Special CD-ROM Vol. 1)
- improved: Reading directory record (Formula GP SLES-03994)

*2018-04-19
- added: Support HD-DVD and raw dump and GC/Wii disc
          => HD-DVD: use 'dvd' command. raw dump and GC/Wii disc: use 'dvd' command and /raw option.
             (GC/Wii disc is only supported by GDR-8082, 8161, 8162, 8163, 8164)
             If you want to unscramble GC/Wii raw image, put unscramler.exe in dic directory.
             https://github.com/saramibreak/unscrambler/releases
- added: cue file of GD-ROM image
- changed: LICENSE (MS-PL -> Apache License Version 2.0)
- fixed: SecuROM range
- fixed: Reading directory record (GD-ROM and minus offset disc, DVD, CD-i sub directory)
- fixed: /ss option (support ProtectCD VOB minus offset disc)
- fixed: /c option (skip returning error)
- improved: Reading sub-channel (if random error occurs to rmsf or amsf, exec /f forcibly)

*2018-05-22
- added: swap command (This is for non-Plextor drive)
- added: ls command (This shows maxium drive speed in command-line screen)
- added: Support PS2 unlicensed disc (needs to use /sf. This protect looks like a safedisc)
- added: GC/Wii dumping drive (support GCC-4160N, 4240N, 4243N, 4247N)
- added: Check subQ adr and RtoW before dumping of GD-ROM
- added: Check if PSX PAL or not (for /nl)
- added: Output .dat file for BD-ROM
- changed: Rereading the sector if crc16 of subQ is currupt, not rmsf or amsf
- changed: Disable beep except disc dumping command (cd, dvd etc.)
- fixed: Checking error of subQ track
- fixed: Reading path table record of GD-ROM (support path table size is over 2352)
- fixed: dumping CD-i ready (not unscramble the pregap sector)

*2018-06-19
- added: xbox command (support XGD2 of XBOX/XBOX 360)
- added: PIC.bin for BD based disc
- added: /74 option in swap command (for ring data of Sega Saturn)
- added: SESSION syntax in cue file
- added: .dat for floppy
- changed: the way to get the timestamp
- changed: permit to continue reading if the disc is CD-R or CD-RW and c2 errors are over 10000
- changed: Plextor drives support only latest firmware
- fixed: /ms option (dumps leat-out of 1st session, lead-in of 2nd session and pregap of 1st track of 2nd session)
- fixed: TOC of multi session disc
- fixed: GetWriteOffset for ASUS
- fixed: sub-qchannel reading
- fixed: misdetection of MCN before dumping
- fixed: Reading directory record (incorrect data length of DVD)
- fixed: Reading Volume Descriptor of DVD

*2018-07-26
- added: CSS authentication
          => CSS.exe is needed. Please download and put exe into Release_ANSI directory of DIC.
             https://github.com/saramibreak/CSS/releases
- added: Linux build
- fixed: Reading directory record of GD-ROM
- fixed: /s option (/s 0 and /c2 can't use together)
- fixed: Disc log of DVD (Region)

*2018-08-12
- added: xboxswap, xgd2swap, xgd3swap command
- added: Reading param.sfo
- added: makefile for linux
- improved: Reading sub-channel (create QGenSector from QNextSector - 1 and QPrevSector + 1)
- fixed: _splitpath for linux (added null checking)

*2018-08-28
- added: Support XGD3 dumping on kreon drive
- fixed: Rereading of SecuROM/Libcrypt
- deleted: some warning

*2018-09-01
- added: Drive speed of bd and xbox. (If you don't use this, please specify 0)
- changed: No output XGD3 SSv1
- improved: Security Sector log of XBOX (added timestamp etc.)

*2018-09-15
- added: support mode 0x00 of CD data track
- changed: set to invalid mode except 0x00 or 0x01 or 0x02
- fixed: disc speed changing doesn't work for linux.
- fixed: increased memory allocation for double pointer (subchannel, cd-text)
- deleted: some warning when used Wextra

*2018-10-20
- added: support unnamed protection (EdcEccErrorProtect.txt and ReadErrorProtect.txt)
- added: support LaserLock and Proring (needs optiarc drive)
- fixed: cue file (CATALOG field of linux build, pregap of track 1 of GD)
- fixed: GD dumping for linux when plextor is used
- fixed: /ms option (subchannel)
- fixed: misdetect MCN of last sector of track to first sector of next track
- deleted: some warning for linux

*2018-10-22
- added: -W flag in makefile
- fixed: crash /ns for external file
- deleted: some warning for linux

*2019-03-26
- added: GDR-8084N and GCC-4244N for GC/Wii
- added: output dat for linux
- added: /vn flag (support VideoNow)
- added: /sf flag in dvd command for RingProtect
- added: support pregap data track
- added: support 288 and 264 and 240 bits of SafeDisc
- changed: /74 option is only used by swap command
- changed: app is aborted if crc16 of subQ is 0 when disc is reread
- fixed: detecting SecuROM (devided v3 to v3_1 and v3_2)
- fixed: detecting SecuROM Type 4 (4.5.x.xx - 4.6.x.xx)
- fixed: detecting smartE
- fixed: SafeDisc Lite dumping
- fixed: buffer offset overflow of GD-ROM TOC
- fixed: CDTEXT
- fixed: Subs vs. TOC desync

*2019-06-27
- added: extract several string from DMI.bin to _disc.txt for Xbox
- added: output volume descriptor and directory entry of XDVDFS to volDesc.txt(readable format) and mainInfo.txt(binary format)
- added: output all mode sense
- added: detecting "          Licensed  by          Sony Computer Entertainment(Europe)"
- added: reading nintendo optical disc filesystem
- added: support CD-i multi-track disc (Dimo's Quest (USA))
- added: support PS3 drive (PS-SYSTEM   302R)
- added: sacd command
- changed: hashing count off for speeding up
- changed: multi-session cue file
- fixed: checking the directory table size when transfer length is beyond a maximum
- fixed: tracknum of SubQ manually if /nq is used
- fixed: rawdump of lite-on
- fixed: Subchannel & TOC desync flag was not set in some cases

*2019-10-01
- added: disk command
- added: reverse reading in dvd command
- added: /vnc in cd command
- added: support multi-session disc for redump'org format
- added: support Atari Jaguar CD
- added: support DVD-RAM
- added: PS4 BD detection for PS4 drive
- added: output the region of DVD drive to log
- added: 0xf1 opcode for Asus BW-16D1HT 3.02
- added: detecting weird subQ of PS2 unlicensed disc
- added: ignoring "F0 F0 F0 00 00 00 0F 0F 0F 0F" of C2 error
- changed: protection handling (SmartE, CD.IDX, VOB ProtectCD, 3PLock etc.)
- changed: CSS authentication tool (CSS.exe -> DVDAuth.exe)
- changed: multi-session disc is auto-detected
- fixed: CD-TEXT (buf size and sjis only disc)
- fixed: ls command
- fixed: detecting SafeDisc
- fixed: PageMode 0x0d log
- fixed: SilentMode log of plextor drive
- fixed: cue file of some desync disc
- fixed: formatLength of DVD_STRUCTURE
- fixed: rereading for ring protection

*2019-11-16
- added: check disc size of DVD
- added: detecting RipGuard
- added: Analyze IfoFile of DVD
- added: /f in data and audio command
- added: support multiple files in C2ErrorProtect.txt (MAX 16 files)
- fixed: fulltoc 0xb0
- fixed: output PFI of DVD-R and DVD+R (ECMA-279, ECMA-359, ECMA-349)
- fixed: checking lead-out of subQ channel

*2019-12-23
- added: output cue file if 2nd language code of CDTEXT exists
- fixed: fail to XBOX/XBOX 360 dumping from 2019-11-16
- fixed: main channel buffering (ROM^2 Karaoke Volume 5 [PCE])
- improved: UDF logging => support detecting the size of DVD-RE, BD-R, BD-RE

*2020-01-20
- fixed: detecting 2nd Anchor Volume Descriptor Pointer
- fixed: parse driveOffset.txt

*2020-02-03
- added: call ReadDiscInformation for CD-R/RW
- added: ReadTOCPma for CD-R/RW
- added: If valid extension was omitted, ".bin" is set to path automatically.
- added: stores subP channel because first sector is EAN/ISRC
- deleted: /m flag
- fixed: splitted the subs indexes CUE
- improved: TOCATIP logs
- improved: Reading erroneous directory record (support [PSX] Tokimeki Memorial - forever with you, [PSX] Aitakute... - Your Smiles in My Heart)

*2020-04-03
- added: output ApplePartitionMap log
- added: /p is supported by PX-W4012 and some old plextor
- added: /vnx flag for videonow xp
- added: TOC reading for slot mechanism drive when swap command is used
- added: output DeviceType, StorageMediaType when disk command is used
- changed: /p and /c2 can't use together
- changed: PX-708A 1.04 is enabled to use
- improved: TOC_ATIP log
- fixed: misdetected leadin sector
- fixed: misdetected last sector of data track on subchannel
- fixed: do not check month and day of directory record for NERO___BURNING_ROM
- fixed: UNICODE build
- fixed: sector length of DVD-RAM, DVD+R
- fixed: TOC_INFO of CDTEXT
- fixed: when sub or mds command is used and valid extention is omitted, its command fails to execute
- fixed: swap command didn't work from 20191223
- fixed: get some drive offset
- fixed: Log of DISK_GEOMETRY_EX and FAT32
- fixed: PS2 unlicensed discs can't dump from 20191223
- fixed: Linux can't dump CD with CDTEXT

*2020-06-04
- added: support for make install command (Linux only) (thanks pseiler)
- added: support multi-session disc that the combined offset is minus
- added: new 0xf1 drive (thanks olofolleola4)
          -> ASUS BW-12B1ST   a   1.00
          -> ASUS BC-12D2HT 3.01
          -> HL-DT-ST BD-RE  WH16NS60 1.00
- added: extract MicroSoft Cabinet File (.cab) for searching protection (Windows only)
- added: extract InterShield Cabinet File (ISc) to detect protection using i6comp.exe (Windows only)
- added: extract Wise Installation to detect protection using E_WISE_W.EXE (Windows only)
- added: output log of SecuROM DLL Header (AddD, CA DD DD AC) to _volDesc.txt
- added: output fullpath of file to _volDesc.txt
- added: output import directory log to _volDesc.txt
- added: output ISRC country, owner, year, serial to _disc.txt
- added: output layerbreak to _disc.txt (only xbox or xbox 360)
- added: output log of cdg instruction to _subReadable.txt
- added: output DVD header of the raw dump to _rawReadable.txt
- added: REM LEAD-OUT, LEAD-IN, REM PREGAP in Subs indexes cue
- changed: Data and Time format (ISO8601 is used)
- changed: _cmd.txt to _[BuildData].txt
- fixed: BD-ROM also uses "Anchor Volume Descriptor Pointer", not TOC length
- fixed: dat is empty if current directory is root
- fixed: detecting 1st lead-in sector of 2nd session
- fixed: detecting psx anti-mod string when the string across sector boundary
- fixed: disk dumping (use Read10, not ReadFile)
- fixed: raw dump of GCC-4241N & GCC-4242N
- fixed: PLBA of ccd if LBA is over 404850
- fixed: XBOX dumping (failed to dump if transfer length is over max)

*2020-06-20
- fixed: crash when both /sf and /ns are used

*2020-07-11
- fixed: crash when /ns is used by some disc

*2020-07-16
- added: /mscf flag for cd command
- added: /avdp flag for dvd or bd command

*2020-09-21
- added: support double offsets disc [mainly FMTowns disc]
- added: checking pregap sync, msf, mode [mainly +588 and +1176 US-mastered Saturn discs]
- changed: reading sector num to calc the offsets
- changed: 1st cab or hdr file is only extracted [windows only]
- fixed: fail to get the correct subch when MCN sector exists in LBA 0
- fixed: output filename of FAT
- fixed: seek position when reading error occurs [xbox only]

*2020-11-01
- added: detect cppm
- added: /ps flag for dvd command (for [PS2] Katamari Damacy (USA))
- added: support HL-DT-ST UH12NS40 1.00 and HL-DT-ST WH14NS40 1.01 as 0xF1 drive (thanks olofolleola4)
- added: if TOC is weird, fix it (for [CD-i] Op Jacht Naar Vernuft (Netherlands))
- added: output TOC (binary) to _mainInfo.txt
- added: output P-channel and Q-channel gaps to _subInfo.txt
- added: execute "ad 00 00 00 00 00 00 03 00 c0 00 00" forcibly when the drive recognizes Nintendo disc
- changed: css-auth to DVDAuth_linux
- fixed: firmware version of BC-12D2HT
- fixed: output incorrect pregap when Q-channel's pregap is 00:01:74 and the adr of 00:01:74 is 2(MCN) or 3(ISRC)
- fixed: escape the c2 error "F0 F0 F0 00 00 00 0F 0F 0F"
- fixed: check the offset twice when the combined offset is over 1 sector.

*2021-01-02
- added: support the multi-track CD-i (1st track is data, others audio)
- added: show the error message when multi-session disc is dumped by the plextor cdrom drive
- added: show the error message (Multi sector reading isn't supported now even if 0xf1 is supported)
- fixed: subQ when there is MCN or ISRC in the 1st pregap sector or last sector of the track
- fixed: failed to dump the multi-session disc from 20200604
- fixed: buf size to store the fullpath
- improved: subQ Adr 6

*2021-02-02
- added: 0xF1 drive (ASUS BW-16D1HT 3.00, HL-DT-ST BH14NS40 1.00 N1A11A1, BH14NS58 1.00,
                     BH16NS40 1.00 N1A29A2, 1.02 N000200, BH16NS55 1.00, 1.01, 1.02,
                     BH16NS58 1.00, WH14NS40 1.00 N001401, 1.02 N000100, WH16NS40 1.02 N001401)
- added: output DVD_COPYRIGHT_DESCRIPTOR and DVD_MANUFACTURER_DESCRIPTOR to mdsReadable log
- fixed: detect SecuROM 1st version (216 errors)
- fixed: analyze CD-TEXT
- deleted: xbox xtreme log

*2021-03-01
- added: check CD-TEXT CRC
- added: securomV3_3 (no test)
- fixed: /sf doesn't affect all sectors
- fixed: _mdsReadable.txt

*2021-04-01
- changed: check C2 error "F0 F0 F0 00 00 00 0F 0F 0F" by plextor only
- fixed: error occurred by findstr when there is a space in the path

*2021-06-01
- added: output IMAGE_EXPORT_DIRECTORY
- added: output IMAGE_RESOURCE_DIRECTORY
- changed: output IMAGE_IMPORT_DIRECTORY
- changed: 0x83 ... 0x8f do not affect the cue sheet if crc is bad, so CD-TEXT output is permitted.
- fixed: check c2 error "00 f0 f0 f0 00 00 00 0f 0f 0f 00"
- fixed: SubQ adr6
- improved: multi sector reading of the 0xf1 drive

*2021-07-01
- fixed: only use 1st 0xb0 (FULL TOC)
- fixed: escaped the encrypted PARAM.SFO
- fixed: ASUS FW does not support dumping multi-session discs for my tool because it can't read the lead-in sector of the 2nd session
- fixed: 0x7f, 0xff...0xff of subRtoW are not detected as error
- fixed: failed to dump the GD-ROM
- fixed: cannot get PVD due to one pregap sector
- fixed: failed to dump the multi-session disc that has offsets over 2352 bytes (Sonic The Hedgehog (Germany) (4 014548 004785))

*2021-10-01
- added: detect ARccOS
- added: detect DiscGuard (only detect, not fix bytes)
- added: check disk space size
- improved: BD-ROM, -R, -RE PIC log
- fixed: reading multisession (pregap of 1st track of 2nd session)
- fixed: msf of main channel when reading multisession
- fixed: Nintendo Optical Disc dumping for some drive
- fixed: when 1st pregap sector has an incorrect index and isn't well-known pregap size (225, 150, 149), can't fix it correctly.

*2021-11-01
- fixed: ReadErrorProtect

*2022-02-01
- added: /vrfy flag for checking non-zero byte of audio CD
- added: buffer size check when IMAGE_EXPORT_DIRECTORY is outputted
- added: support for reading cache via 0xF1 on HL-DT-ST BD-RE WH14NS48 v.1.D3
- changed: "DATE" to "wmic os get LocalDateTime" when createBuildDateTime.bat is created
- changed: check disk free space
- changed: Hash image while dumping (DVD, BD)
- fixed: trim the string of i6comp.exe
- fixed: string (x86 -> 32 bit)
- fixed: ARccOS is checked by DVD-Video
- fixed: cue file when /p is used
- fixed: disk space checking for linux
- fixed: when used .petite, it's skipped reading Export, Import, Resource data due to the compressed data
- fixed: dumping of "Star Wars - Shadows of the Empire Soundtrack"

*2022-03-01
- added: /rr flag for DVD/BD retry to read
- added: check if the directory record length is really correct (The Shooting Love: XII Stag & Trizeal [DVD] (Japan))
- fixed: the buffer size when analyzing the IFO files
- fixed: Xbox/Xbox360 generates an incorrect hash

*2022-05-01
- added: support dumping exFAT
- changed: hash calculate while dumping disk
- fixed: checking of the directory record length
- fixed: output .pre file
- fixed: output SecuROM 4.7x
- fixed: output SS log of xbox/xbox 360 (use version, not filesize)
- fixed: transfer length of the disk dumping

*2022-06-06
- added: check Latin-1 character when reading DirectoryRecord
- added: support CD-TEXT with Unicode
- changed: PFI.bin to (fname)_PFI.bin and DMI, SS, PIC are also the same
- fixed: when subQ is fixed, if the adr of next subQ is not 1, prev subQ is used
- fixed: allow "Data Length 0" (for some linux and amiga disc)

*2022-07-07
- fixed: cue with INDEX 01 00:00:255
- fixed: Console output still missing after a strange filename
- changed: DWORD to UINT (Linux does not detect some SecuROM protection)

*2022-09-09
- added: /rr for xbox command
- changed: log message of gamecube and wii
- fixed: failed to dump gamecube disc since 5 Sep 2021
- fixed: check the directory record length
- improved: /re and /fix

*2023-02-01
- added: support the c2 offset of the plextor 712A or newer
- added: change the default path of the driveOffset.txt file on linux
- added: fix subQ using next subQ when crc does not match by index 0
- added: /d option (hash sha224, sha256, sha384, sha512)
- added: /sk for dvd
- changed: do not use the combined offset in .c2
- changed: set mode using LBA 11
- changed: remove printing directory from .dat output file on linux
- fixed: forgot .raw hashing
- fixed: failed to read directory record when record size is more than the max transfer length (only GD-ROM)
- fixed: check subchannel of lead-in of the 2nd session
- fixed: cue indexes when there is index 2 or more in track 1
- fixed: detecting ARccOS

*2023-03-09
- added: output universal (from the 1st non-zero byte position to the last non-zero byte position) hash when audio CD is dumped
- added: output hash for XXH3 (64bit and 128bit) when using /d
- added: output .toc file
- changed: do not skip descrambling when reserved area(0x814 - 0x81b) is invalid
- changed: TOC vs. Subs are desync about the control(data/audio) flag, TOC in priority. Subs are created as "(Subs control)"
- improved: log of the CD sync
- fixed: ISRC issue of cuesheet for "Nine Inch Nails - Broken"

*2023-04-01
- added: Track[0] to _SubReadable.txt
- added: (Track 0), (Track 1)(-LBA), (Track AA), (Track all) when audio CD is dumped
- added: get non-zero byte position (1st and last) of the each track to the _disc.txt
- added: SIZE_OF_ARRAY macro
- deleted: /vrfy option and related code
- fixed: universal hash (changed sample base, not byte)
- fixed: the range of the SubQ check
- fixed: and improved C2 error recovering
