-------------------------------------------------------------------------------------
Schtrom360Xtract V3.1
-------------------------------------------------------------------------------------
Schtrom360Xtract is used to backup Xbox360 and Xbox1 game discs in one step.


Features/Functions
--------------------
Version 3.1 Release Date 03.11.2006
- sector mapping implemented for XBOX1
- xtreme v4.0 and later new unlock command supported for ms28
- support for SH-D163A
- show SH-D162C and SH-D163A only if the drive responds to the get drive feature cdb
- check for disc in drive on extraction
- the region code of an image or game.iso can be checked
- extract files from an image file with the new XDVDFS XTR tool -> thanks for the 
  inspiring source to Team PI Coder


Version 3.0 Release Date 04.10.2006
- extraction speed on SH-D162C is now 10 minutes for Xbox360 discs
- app also starts if no supported drive is found (to do image extraction/injection)
- on cancel the incomplete extracted file can be deleted
- support of kreon's GetFeatureList command, to check if the firmware of SH-D162C supports 
  c/r data extraction, this is also available from the tools menu
- send custom cdb commands to drive can be used from the tools menu to send all possible
  cdb's to the drive
  - we added predefined cdb presets
  - you can add your own custom cdb presets which are saved in the Schtrom360Xtract.ini file
  - the hexdisplay can be saved to a file
- sector re-read settings can now be changed per drive type and disc type, this could be 
  important if your discs are scratched or if you have problems extracting XBOx1 games
- if your SH-D162C or compatible drive isn't detected you can configure a custom drive in 
  the options menu, the choosen drive type determines how the drive is handeled by the app,
  so if you have problems detecting the SH-D192C or compatible drives configure this to be
  SH-D162C and choose the mapped system drive letter
- on problems you can activate a debug log and a ss debug log
  - the debug log logs the extraction process
  - the ss debug log logs only ss extraction and writes down the important sections of the
    ss like c/r data
  - the logs reside in the program directory
  - the extraction debug log is named Schtrom360Xtract.log
  - the ss debug log is named SSDebug.log
- if read errors occur a msg is displayed where you can continue writing blank sectors or
  abort extraction, after the extraction is finished the complete number of errors is 
  displayed for blocks (16 sectors * 2048 bytes) and single sectors (1 sector * 2048 bytes)
- all available ini settings can be edited in the options dialog
  you can set the following global values:
  - debug mode on or off
  - ss debug mode on or off
  - sound on or off
  - custom drive type
  you can set the following drive and disc specific values:
  - eject tray after extraction yes or no
  - speed boost on or off
  - max read speed and idle speed of the drives
  - single sector read on error can be turned on or off
  - the number of block and sector re-reads on error
- added kreon firmware revision level in drive combo box for SH-D162C
- common control style for windows xp added


Version 2.1 Release Date 01.09.2006
- now extracts video.iso, pfi.bin and dmi.bin for xtreme 3.0 style images
- also tested with xtreme V3.2
- single extraction of video.iso, pfi.bin, dmi.bin, ss.bin and game.iso supported
- the extraction can be done from original discs, copied discs and image files
- two whole disc extraction methods:
  - xtreme 3.0 style (video.iso, pfi.bin, dmi.bin)
  - xtreme 2.0 style (blank.iso, no pfi.bin, no dmi.bin)
- injection of video.iso, pfi.bin, dmi.bin, ss.bin and game.iso to an image
- automatic detection of Xbox1 or Xbox360 game discs depending on the size
- stealth checks added for Xbox1 and Xbox360 copied discs and images by acidflash
- DVD-ROM support for USB SH-D162C by acidflash


Version 2.0 Release Date 10.08.2006
- now also enumerates Samsung TSSTcorp DVD-ROM SH-D162C drive letter
  - you must flash with kreon's firmware first
  - at the moment there is no full security sector extraction possible with this drive, there 
    are 69 bytes difference to a "real" security sector from the Xbox360 drive
- extraction of Xbox1 games should now be possible
  - be warned, I had no way to test this, so it would be nice if anybody can confirm this works
- if the "game data visible"-function fails, extraction continues
  - I never had this problem so some testing would be nice
- now you can also copy defective sectors on discs that for example are scratched
  - in my tests I never had any read errors on Xbox360 discs, neither on the SH-D162C nor the 
    Xbox360 drive
- extraction time is now displayed in the status bar
- image files are named in ascending order from IMAGE1.000 to IMAGE999.000
  - you don't have to move the image files if you want to extract another one
- last but not least the extraction speed increases dramatically with this release
  - in my tests a complete Xbox360 image was extracted within 15 minutes on the SH-D162C
  - many many thanks to blackpanther who helped me a lot on the extraction routine, he's a great
    programmer and it's a pleasure for a noob like me to work with such a master of C++!!!


Version 1.0 Release Date 31.07.2006
- enumerates Xbox360 TSSTcorp DVD-ROM TS-H943A drive letter
- creates the CloneCD image desciptor file IMAGE.dvd for the layer break
- creates blank360.iso
- extracts security sector (ss.bin)
- makes game data visible
- extracts dvd sectors (game.iso)
- merges blank360.iso, ss.bin and game.iso to the CloneCD image file IMAGE.000


Hints
-------
Version 3.1
If kreon get's out more firmwares in future for new drives you can activate them
in the options dialog. Choose the drive letter of the connected device and set 
drive type to SH-D162C. After restarting the app you can choose the new drive in 
the drive combo box and start the extraction.


Version 3.0
If you get problems on extraction turn the speed boost off. The drive then works with
the default drive speed on extraction. If you changed the options and want to go back
to the predefined settings delete the Schtrom360Xtract.ini. The file is created again
at program start. But make sure you saved your custom cdb commands before deletion!
These can be added again later under the section [CDB Command Presets].


Version 2.1
For me no read errors occurred on Xbox360 discs! On Xbox1 discs the read errors are
corrected for best results.


Version 1.0
Make sure your Xbox360 TSSTcorp DVD-ROM TS-H943A drive is in xtreme0800 mode.
The Samsung TSSTcorp DVD-ROM SH-D162C drive must be flashed with kreon's firmware.
Otherwise there's no drive letter available and Windows XP can't see the drive.
This program is written for Windows XP SP2 and I think it's the only platform it
will run on at the moment, but with the source included you hopefully can port it 
easily.


Additional Steps
------------------
To burn the image do the following:
- set the booktype of your burner from DVD+R DL to DVD-ROM
  (you don't need this with xtreme firmware V3.1 and later on TS-H943A)
- start CloneCD
- insert DVD+R Double Layer disc
- choose image.dvd file
- burn at 2.4x speed
- I have not burned with DVD Decryptor, but I've read you must apply the layer
  break manually in this software, there are some good tuts on www.xbox-scene.com


Technical Details
-------------------
Changes and error fixes
Version 3.1
- first the new unlock command is issued to any drive, if this fails the old unlock
  command is sended
- on every extraction loop the device is tested for a disc in drive


Version 3.0
- MyEnumAllXbox360CDROMs replaced IOCTL_STORAGE_QUERY_PROPERTY and send the inquiry through
  MySendCDB, this also reduces typedef struct from ntddk in myntddk.h
- poweriso empty combo boxes fixed, if you configured a virtual drive in poweriso this drive
  don't respond to the sended inquiry command and my functions returns with an error,
  I think this behaviour is intended by the authors of poweriso
- XBOX1 ss problem in kreon's V0.80 is fixed on ss extraction
- without any option changes and speed boost turned on:
  - SH-D162C works on 16x extraction speed
  - TS-H943A works on 16x extraction speed, the command is accepted although we think the 
  TS-H943A can't go faster than 12x
  - on ss extraction SH-D162C works with 6x speed and TS-H943A with 5x speed, which is also
  the idle speed for the drives
- Schtrom360Xtract.ini is created at startup with predefined settings for max performance
- ported program to VS2005


Version 2.1
- it seems to be the best to use blocks of 16 sectors when reading the discs,
  especially for error corrections on Xbox1 discs this works best
- on error every sector of the failed block (2048 Byte * 16 sectors) is read again
  before the sector is filled with zeros, this seems to give the similar results as
  isobuster
- many functions have been rewritten, now we have functions like MySendCDB to send a
  variable length command to the device
- I used a lot more MFC CStrings, cause the code get's more readable than with c style
  strcpy and strcat
- MyExtractSectors is a very huge function, cause we can gain a lot of time in comparison
  to calling MySendCDB every loop and init all the structs
- the most functions now accept file or device handles, so we don't need to open/close
  devices and files all the day
- before the video.iso extraction the cd tray must be ejected and loaded on the original
  Xbox drive, this is only necessary if the game data is already visible at video
  extraction start
- the pfi.bin and dmi.bin extracted on the original Xbox drive with xtreme 3.0 has
  a "four byte left shift" compared to the SH-D162C, so on extraction on the Samsung
  drive I implemented this shift, thanks to kreon who helped me with the last 4 missing
  bytes on the samsung and c4e for his immediate response in the forums
- differences between an SH-D162C xtreme 3 and an Xbox xtreme 3 image:
  - 0xFD8FA00: 69 bytes challenge/response data missing in the security sector of the samsung
- warning: if you compare Xbox1 images extracted on SH-D162C and TS-H943A you get different
  results even with isobuster, the SH-D162C seems to have a better error correction and 
  can read sectors the Ts-H943A can't read 
- now I also try to support copied disks, they are checked for valid pfi, dmi and ss data,
  first I try to extract the data in the usual way (cdb), if this fails I read the sectors 
  where the data resides on a copy, thanks for acidflash and Redline99 for help on checking
  for valid bytes
- after extraction every file is checked on valid size


Version 2.0
- the CD-ROM enumeration routine has some major bugs, but they only show if you
  modify the functions to scan more than one drive, cause of that I deleted the
  SCSI inquiry command and took another approach with IOCTL_STORAGE_QUERY_PROPERTY,
  the new function name is MyEnumAllXbox360CDROMs
- added a combo box for better changeablity of supported extraction drives
- added a check box for selecting Xbox1 game extraction mode
- "game data visible function" return value is ignored
- in the function MyExtractXboxImageFromDVD the first unreadable cd sector on the 
  disc will generate a MessageBox, the user can continue the extraction with errors
- the MyExtractXboxSecuritySector functions now has a Sleep of one second between 
  sending cdbs, this is for security only, no errors had been reported of a wrong ss
- the extraction routine is now modified for faster reading of sectors


Source Code 
-------------
Source Code is not released in future versions. There are to many patchers out there!
They incremented the version number on their own and this really sucks! On 2.0 there
were too many "patched" versions out and users don't know what version they should 
download. This also confuses us if we get an error report on an "unknown" version.
We think the really interested people can figure out what's going on by looking at the
source code of version 1.0 and 2.0.


Special Thanks 
-----------------	
Greets go out to Xboxhacker.net, Xbox-Scene.com, xbins.org and all other sites for
their support. 

blackpanther:
Thanks to blackpanther who helped me a lot on the extraction routine speed up. His hex 
conversion shows he is a real pro C++ coder.

acidflash:
Thanks for changing parts, coding new source, looking into the code and making suggestions
on what can be made better. Thanks for protection and the amazing send custom cdb dialog.
This was solely your idea! Hope your hand is getting better and you can soon code more
nice things into this. The upcoming hitachi support is yours if the right firmware is out!

Redline99:
Thanks for informing me always and keeping me up to date on new error scenarios. XBC rocks
and is a nice alternative to S360X. Keep me up to date in future on new excellent XBC 
releases!

kreon:
Thanks for sending new firmware releases and let me test your new stuff. Your firmware
rules and with full ss extraction a dream has come true for us all!

c4e:
Thanks for making all this possible on the 360 and sharing your knowledge with others!

Schtrom:
I am full of respect for the people above. They have done great things in the last year!
Their knowledge is amazing! I thank them all on working hard in their limited free time
and code hard (even with one hand) to make backing up XBOX discs so easy everyone can do
it without a problem.

The beta team members:
My special thank to the team leader acidflash! He organized the whole beta testing and error
reporting.
- acidflash (team leader)
- Warped
- stl25
- Karwalski

Eugene Pustovoyt:
Thanks to codeproject and Eugene Pustovoyt for his "CPPDumpCtrl - version 1.2" a really nice 
hex edit control for the send custom cdb command dialog.


Get your XBOX today!
Kai Schtrom (not sponsored in anyway from MS)