Today, with the help of Truong Hi, the coder of PerfectRip, we've come up with a better way of detecting the combined read+write offset of a disc. This new method expands upon our previous discovery, and also proves that our current methods of correcting both offsets are correct.
The principle is that, by using the D8 vendor read command on compatible drives, data sectors are read in audio mode and thus become scrambled. The sync remains unscrambled, and its position can be used to determine the combined read+write offset.
Advantages over old method:
- Works on all discs with data tracks (no audio tracks needed)
- All data track sectors can be used to detect (in the old method it was only possible to use the first track02 pregap sector for this)
Disadvantage:
- It requires a drive that supports the D8 read command. Most Plextor drives (original ones, not rebadged) are confirmed to support this command (755A, 760A, etc).
Software needed:
Px_D8 v1.01 by Truong Hi - http://vigi.dremora.com/px_d8.rar
Usage: px_d8 <drive letter> <LBA sector> [sub-ch bits]
sub-ch bits:
0 or ommit for no sub-ch data
1=16 PQ
2=96 raw
Precautions:
- If you have a Plextor drive, be sure to update to the latest firmware available for your drive!
Howto:
Download the tool, put it in a folder, open command prompt.
If your drive is D:, then launch the px_d8.bat file. If your drive is at a different letter, use:
px_d8.exe <drive letter> 0 0
If your drive supports the read command, you will get output similar to this:
C:\psx>px_d8.bat
CB2197586EBAAC733DE5D18B1C6749EA
B6CF36D416DF4ED8345A977B2EA35C79
F9E2C2C99196EC6ECDEC558DFF25801B
200B58077A82A321B9D872DAA59B3B2B
535F7DF821829861AAA87F3EA010780C
2285D9A31AF9CB02D7419EB068742EA7
5C7AB9E332C9D596DF2ED81C5A89FB26
C35AD1FB1C4349F1F6C446D372DDE599
00FFFFFFFFFFFFFFFFFFFF0001820062
0028081E80086806A802FE8180606028
281E9E886866AEAAFC7F01E000480036
8016E00EC80456837EE1E0484836B696
F6EEC6CC52D5FD9F01A8007E80206018
280A9E8728629EA9A87EFEA040783022
9419AF4AFC3701D6805EE0384812B68D
B6E5B6CB36D756DEBED8705AA43B3B53
537DFDE181886066A82AFE9F0068002E
801C6009E806CE82D4619F68682EAE9C
7C69E1EEC84C56B5FEF700468032E015
880F26841AE34B09F746C6B2D2F59D87
29A29EF9A842FEB180746027681AAE8B
3C6751EABC4F31F414474F72B425B75B
36BB56F37EC5E053083DC69192EC6D8D
EDA58DBB25B35B35FB57037E81E06048
28369E96E86ECEAC547DFF618028601E
A8087E86A062F829829EE1A8487EB6A0
76F826C29AD1AB1C7F49E036C816D68E
DEE4584B7AB76336A9D6FEDEC058503A
BC1331CDD4559F7F28201E98086A86AF
22FC1981CAE057083E869062EC298DDE
E5984B2AB75F36B816F28EC5A4533B7D
D3619DE8698EAEE47C4B61F76846AEB2
FC7581E7204A98372A969F2EE81C4E89
F466C76AD2AF1DBC09B1C6F452C77D92
A1ADB87DB2A1B5B87732A695BAEF330C
15C5CF13140DCF4594332F55DC3F19D0
0ADC0719C28AD1A71C7A89E326C9DAD6
DB1EDB485B76BB66F36AC5EF130C0DC5
C593132DCDDD9599AF2AFC1F01C80056
803EE010480C3685D6E31EC9C856D6BE
DEF058443AB35335FDD7019E8068602E
A81C7E89E066C82AD69F1EE8084E86B4
62F76986AEE2FC4981F6E046C832D695
9EEF284C1EB5C87716A68EFAE4430B71
C76452AB7DBF61B028741EA7487AB6A3
36F9D6C2DED1985C6AB9EF32CC1595CF
2F141C0F49C436D356DDFED9805AE03B
0813468DF2E5858B232759DABADB331B
55CB7F17600EA8047E836061E8284E9E
B468776EA6AC7AFDE30189C066D02ADC
1F19C80AD6871EE28849A6B6FAF6C306
D1C2DC5199FC6AC1EF104C0C35C5D713
1E8DC86596AB2EFF5C4039F012C40D93
45ADF33D85D1A31C79C9E2D6C99ED6E8
5ECEB85472BF65B02B341F57483EB690
76EC26CDDAD59B1F2B481F768826E69A
CAEB170F4E8434635769FEAEC07C5021
FC1841CAB057343E97506EBC2C71DDE4
598B7AE7630AA9C73ED2905DAC39BDD2
F19D8469A36EF9EC42CDF195846F236C
19EDCACD9715AE8F3C6411EB4C4F75F4
27075A82BB21B35875FAA7033A81D320
5DD8399A92EB2D8F5DA439BB52F37D85
E1A30879C6A2D2F99D82E9A18EF86442
AB71BF64702B641F6B482F769C26E9DA
CEDB145B4F7B74236759EABACF331415
CF4F14340F57443EB35075FC2701DA80
5B203B58137A8DE32589DB26DB5ADB7B
1B634B69F76EC6AC52FDFD8181A06078
28229E99A86AFEAF007C0021C018500A
BC0731C29451AF7C7C21E1D8485AB6BB
36F356C5FED3005DC0399012EC0D8DC5
A5933B2DD35D9DF9A982FEE180486036
A816FE8EC064502B7C1F61C828569EBE
E8704EA4347B57637EA9E07EC8205698
3EEA904F2C341DD7499EB6E876CEA6D4
7ADF631829CA9ED7285E9EB86872AEA5
BC7B31E35449FF76C026D01ADC0B19C7
4AD2B71DB689B6E6F6CAC6D712DE8D98
65AAAB3F3F50103C0C11C5CC5315FDCF
0194006F402C301DD4099F46E832CE95
946F2F6C1C2DC9DD96D9AEDAFC5B01FB
40437031E4144B4F777426A75AFABB03
3341D5F05F0438035281FDA041B83072
9425AF5B3C3B51D37C5DE1F98842E6B1
8AF467076A82AF21BC1871CAA4573B7E
93606DE82D8E9DA469BB6EF36C45EDF3
0D85C5A31339CDD2D59D9F29A81EFE88
4066B02AF41F074802B681B6E076C826
D69ADEEB184F4AB437375696BEEEF04C
4435F35705FE830061C028501EBC0871
C6A452FB7D8361A1E8784EA2B479B762
F6A986FEE2C0499036EC16CDCED5945F
2F781C2289D9A6DAFADB031B41CB7057
643EAB507F7C2021D8185A8ABB27335A
95FB2F035C01F9C042D0319C1469CF6E
D42C5F5DF8398292E1AD887DA6A1BAF8
7302A5C1BB10734C25F5DB071B428B71
A7647AAB633F69D02EDC1C59C9FAD6C3
1ED1C85C56B9FEF2C04590332C15DDCF
19940AEF470C3285D5A31F39C812D68D
9EE5A84B3EB75076BC26F1DAC45B137B
4DE37589E726CA9AD72B1E9F486836AE
96FC6EC1EC504DFC3581D7205E98386A
92AF2DBC1DB1C9B456F77EC6A052F83D
8291A1AC787DE2A189B866F2AAC5BF13
300DD4059F432831DE94586F7AAC233D
D9D19ADC6B19EF4ACC3715D68F1EE408
4B46B772F6A586FB22C35991FAEC430D
F1C58453237DD9E19AC86B16AF4EFC34
41D7705EA4387B52A37DB9E1B2C87596
A72EFA9C4329F1DEC458537ABDE33189
D466DF6AD82F1A9C0B29C75ED2B85DB2
B9B5B2F735869722EE998C6AE5EF0B0C
0745C2B311B5CC7715E68F0AE4070B42
8771A2A479BB62F36985EEE30C49C5F6
D306DDC2D9919AEC6B0DEF458C3325D5
DB1F1B480B768766E2AAC9BF16F00EC4
0453437DF1E184486376A9E6FECAC057
103E8C1065CC2B15DF4F18340A97472E
B29C75A9E73ECA90572C3E9DD0699C2E
E9DC4ED9F45AC77B12A34DB9F5B2C735
92972DAE9DBC69B1EEF44C4775F2A705
BA833321D5D85F1AB80B328755A2BF39
B012F40D8745A2B339B5D2F71D8689A2
E6F98AC2E7118A8C6725EA9B0F2B441F
734825F69B06EB42CF7194246F5B6C3B
6DD36D9DEDA98DBEE5B04B34375756BE
BEF0704424335B55FB7F036001E8004E
80346017680EAE847C6361E9E84ECEB4
54777F66A02AF81F028801A6807AE023
0819C68AD2E71D8A89A726FA9AC32B11
DF4C5835FA97032E81DC6059E83ACE93
146DCF6D942DAF5DBC39B1D2F45D8779
A2A2F9B982F2E185886326A9DAFEDB00
5B403B7013640DEB458F732425DB5B1B
7B4B637769E6AECAFC5701FE80406030
28141E8F486436AB5D77FF542050183C
0A913C2C529D06A981BEE0704824369B
56EB7ECF6054283F5E90386C12ADCDBD
95B1AF347C1761CEA8547EBF60702824
1E9B486B76AF66FC2AC1DF10580C3A85
D3231DD9C99AD6EB1ECF485436BF4B75
A06510534C3DF5D1741C62891AA6CEFA
D4431F71C824569B7EEB604F68342E97
5C6EB9EC72CDE5958B2F275C1AB9CB32
D7559EBF28701EA4087B46A372F9E582
Press any key to continue . . .
To know the combined read+write offset, it's first neccesary to determine the amount of data BEFORE THE SYNC/HEADER (00FFFFFFFFFFFFFFFFFFFF0001820...).
On the disc of the example it's 8 rows, which equals 128 bytes = 32 samples (as seen in the cd dumping guide). The read offset of the Plextor drive is +30, so the factory write offset is +2.
Here's another example:
C:\psx>px_d8.bat
36D756DEBED8705AA43B3B53537DFDE1
81886066A82AFE9F0068002E801C6009
E806CE82D4619F68682EAE9C7C69E1EE
C84C56B5FEF700468032E015880F2684
1AE34B09F746C6B2D2F59D8729A29EF9
A842FEB180746027681AAE8B3C6751EA
BC4F31F414474F72B425B75B36BB56F3
7EC5E053083DC69192EC6D8DEDA58DBB
25B35B35FB57037E81E0604828369E96
E86ECEAC547DFF618028601EA8087E86
A062F829829EE1A8487EB6A076F826C2
9AD1AB1C7F49E036C816D68EDEE4584B
7AB76336A9D6FEDEC058503ABC1331CD
D4559F7F28201E98086A86AF22FC1981
CAE057083E869062EC298DDEE5984B2A
B75F36B816F28EC5A4533B7DD3619DE8
698EAEE47C4B61F76846AEB2FC7581E7
204A98372A969F2EE81C4E89F466C76A
D2AF1DBC09B1C6F452C77D92A1ADB87D
B2A1B5B87732A695BAEF330C15C5CF13
140DCF4594332F55DC3F19D00ADC0719
C28AD1A71C7A89E326C9DAD6DB1EDB48
5B76BB66F36AC5EF130C0DC5C593132D
CDDD9599AF2AFC1F01C80056803EE010
480C3685D6E31EC9C856D6BEDEF05844
3AB35335FDD7019E8068602EA81C7E89
E066C82AD69F1EE8084E86B462F76986
AEE2FC4981F6E046C832D6959EEF284C
1EB5C87716A68EFAE4430B71C76452AB
7DBF61B028741EA7487AB6A336F9D6C2
DED1985C6AB9EF32CC1595CF2F141C0F
49C436D356DDFED9805AE03B0813468D
F2E5858B232759DABADB331B55CB7F17
600EA8047E836061E8284E9EB468776E
A6AC7AFDE30189C066D02ADC1F19C80A
D6871EE28849A6B6FAF6C306D1C2DC51
99FC6AC1EF104C0C35C5D7131E8DC865
96AB2EFF5C4039F012C40D9345ADF33D
85D1A31C79C9E2D6C99ED6E85ECEB854
72BF65B02B341F57483EB69076EC26CD
DAD59B1F2B481F768826E69ACAEB170F
4E8434635769FEAEC07C5021FC1841CA
B057343E97506EBC2C71DDE4598B7AE7
630AA9C73ED2905DAC39BDD2F19D8469
A36EF9EC42CDF195846F236C19EDCACD
9715AE8F3C6411EB4C4F75F427075A82
BB21B35875FAA7033A81D3205DD8399A
92EB2D8F5DA439BB52F37D85E1A30879
C6A2D2F99D82E9A18EF86442AB71BF64
702B641F6B482F769C26E9DACEDB145B
4F7B74236759EABACF331415CF4F1434
0F57443EB35075FC2701DA805B203B58
137A8DE32589DB26DB5ADB7B1B634B69
F76EC6AC52FDFD8181A0607828229E99
A86AFEAF007C0021C018500ABC0731C2
9451AF7C7C21E1D8485AB6BB36F356C5
FED3005DC0399012EC0D8DC5A5933B2D
D35D9DF9A982FEE180486036A816FE8E
C064502B7C1F61C828569EBEE8704EA4
347B57637EA9E07EC82056983EEA904F
2C341DD7499EB6E876CEA6D47ADF6318
29CA9ED7285E9EB86872AEA5BC7B31E3
5449FF76C026D01ADC0B19C74AD2B71D
B689B6E6F6CAC6D712DE8D9865AAAB3F
3F50103C0C11C5CC5315FDCF0194006F
402C301DD4099F46E832CE95946F2F6C
1C2DC9DD96D9AEDAFC5B01FB40437031
E4144B4F777426A75AFABB033341D5F0
5F0438035281FDA041B830729425AF5B
3C3B51D37C5DE1F98842E6B18AF46707
6A82AF21BC1871CAA4573B7E93606DE8
2D8E9DA469BB6EF36C45EDF30D85C5A3
1339CDD2D59D9F29A81EFE884066B02A
F41F074802B681B6E076C826D69ADEEB
184F4AB437375696BEEEF04C4435F357
05FE830061C028501EBC0871C6A452FB
7D8361A1E8784EA2B479B762F6A986FE
E2C0499036EC16CDCED5945F2F781C22
89D9A6DAFADB031B41CB7057643EAB50
7F7C2021D8185A8ABB27335A95FB2F03
5C01F9C042D0319C1469CF6ED42C5F5D
F8398292E1AD887DA6A1BAF87302A5C1
BB10734C25F5DB071B428B71A7647AAB
633F69D02EDC1C59C9FAD6C31ED1C85C
56B9FEF2C04590332C15DDCF19940AEF
470C3285D5A31F39C812D68D9EE5A84B
3EB75076BC26F1DAC45B137B4DE37589
E726CA9AD72B1E9F486836AE96FC6EC1
EC504DFC3581D7205E98386A92AF2DBC
1DB1C9B456F77EC6A052F83D8291A1AC
787DE2A189B866F2AAC5BF13300DD405
9F432831DE94586F7AAC233DD9D19ADC
6B19EF4ACC3715D68F1EE4084B46B772
F6A586FB22C35991FAEC430DF1C58453
237DD9E19AC86B16AF4EFC3441D7705E
A4387B52A37DB9E1B2C87596A72EFA9C
4329F1DEC458537ABDE33189D466DF6A
D82F1A9C0B29C75ED2B85DB2B9B5B2F7
35869722EE998C6AE5EF0B0C0745C2B3
11B5CC7715E68F0AE4070B428771A2A4
79BB62F36985EEE30C49C5F6D306DDC2
D9919AEC6B0DEF458C3325D5DB1F1B48
0B768766E2AAC9BF16F00EC40453437D
F1E184486376A9E6FECAC057103E8C10
65CC2B15DF4F18340A97472EB29C75A9
E73ECA90572C3E9DD0699C2EE9DC4ED9
F45AC77B12A34DB9F5B2C73592972DAE
9DBC69B1EEF44C4775F2A705BA833321
D5D85F1AB80B328755A2BF39B012F40D
8745A2B339B5D2F71D8689A2E6F98AC2
E7118A8C6725EA9B0F2B441F734825F6
9B06EB42CF7194246F5B6C3B6DD36D9D
EDA98DBEE5B04B34375756BEBEF07044
24335B55FB7F036001E8004E80346017
680EAE847C6361E9E84ECEB454777F66
A02AF81F028801A6807AE0230819C68A
D2E71D8A89A726FA9AC32B11DF4C5835
FA97032E81DC6059E83ACE93146DCF6D
942DAF5DBC39B1D2F45D8779A2A2F9B9
82F2E185886326A9DAFEDB005B403B70
13640DEB458F732425DB5B1B7B4B6377
69E6AECAFC5701FE8040603028141E8F
486436AB5D77FF542050183C0A913C2C
529D06A981BEE0704824369B56EB7ECF
6054283F5E90386C12ADCDBD95B1AF34
7C1761CEA8547EBF607028241E9B486B
76AF66FC2AC1DF10580C3A85D3231DD9
C99AD6EB1ECF485436BF4B75A0651053
4C3DF5D1741C62891AA6CEFAD4431F71
C824569B7EEB604F68342E975C6EB9EC
72CDE5958B2F275C1AB9CB32D7559EBF
28701EA4087B46A372F9E582CB219758
6EBAAC733DE5D18B1C6749EAB6CF36D4
00D251ED345A977B2EA35C79F9E2C2C9
919672CF438D276E9D06801B200B5807
7A82A321B9D872DAA59B822B815FD8F8
46823161AAA87F3EA010780C2285D9A3
1AF9CB02D7418185733C5EF42854B9E3
32C9D596DF2ED81C5A89FB26C35A93FB
3D431FF162C4E7D372DDE59900FFFFFF
FFFFFFFFFFFFFF00018202620028081E
80086806A802FE8180606028281E9E88
6866AEAAFC7F01E0004800368016E00E
C80456837EE1E0484836B696F6EEC6CC
52D5FD9F01A8007E80206018280A9E87
28629EA9A87EFEA0407830229419AF4A
FC3701D6805EE0384812B68DB6E5B6CB
Press any key to continue . . .
This time there is 2236 bytes before the sync/header, or 513 samples.
However, this time the sync/header is slightly different from our previous example (00FFFFFFFFFFFFFFFFFFFF00018202...).
This difference in the header (18202 instead of 18200) indicates that the data is read from sector 2 instead of sector 0 (see post below for more info).
A full sector is 2352 bytes or 588 samples of data, so the difference is 2*588 samples.
Combined read+write offset = 513 - (2*588) = -617. Because the drive that we used is +30 read offset, the factory write offset is -647.
We strongly suggest Plextor owners to try and use this new method