76

(32 replies, posted in General discussion)

ok, added parameters, added Samsung's command as 'vanilla 2384'
but it isn't currently associated with any drives and has to be selected manually
restricted Lite-On to that single tested model
and some fixes here and there

http://www.mediafire.com/?zthygznudnt

raw output works for me though, but iso output for non Nintendo DVDs would be incorrect
i'll either have to add regular descrambling algorithm
or remove this option sometime later, now for testing it's good

edit:
Lite-On's methods are now joined in single one - method1
method2 might work faster with Plextors, it's as 1 but without cache flushing

syntax for methods with parameters is --method0=16,16 or in short form -016,16

first value is how many sectors to read from DVD, so smaller might produce faster results
2nd value - nr. of sectors to fetch from cache, effect from changing this won't be linear
but generally it's better to keep it close to multiple of 16

77

(32 replies, posted in General discussion)

oh, great, i didn't think Plextor would.

yeah, we could definitely try this.

it's strange though that method 4 does not work, it's the same as 0,
but with streaming parameter set, so less error correction would be done.

maybe we could find something else, that works with Plextor,
like there are some parameters, that control error correction, but Lite-On wouldn't allow to change those,
maybe Plextor does.

i'll check on raw output, didn't test it to be honest, thank you for this.

edit:
and actually i forgot to add command for Samsung...

ok, i'll fix those things and then we could try to get more performance out of Plextor and Samsung (if it works)
with some specific methods.

btw, does Plextor work without swapping?

78

(32 replies, posted in General discussion)

officially unofficial friidump 0.5.0
http://www.mediafire.com/?mzmyntwmowy

- Regions: Italy, France, Germany, Spain, Australia, PAL-X, PAL-Y.
- Updated publisher list from http://wiitdb.com/Company/HomePage
- Included GDR8082N & GDR8161B as supported Hitachi drives.
- Lite-On, Renesas & vanilla memory buffer access commands.
- Shifted methods 1..4 to 0..3 and added new ones 4..6
  Associated known drives with default methods.
- Additional commandline parameters:
  stop, speed, command, type, size

should work with most Lite-Ons, maybe other MediaTek based drives (Asus, Dell, Sony, etc.)
though ~1100 MB/h was most i could get out of mine
and it did need swapping

first thing to try to see whether it works on your drive
would be some PC DVDs - try it with all commands & method 0

if program can get seeds - buffer reading works
so you can proceed with testing methods 4->5->6->1->2->3

if PC DVD works and GC/Wii does not, your drive needs swapping

if you are going to swap DVDs, be sure to use '--type' or '--size' parameter


please report your results here

edit:
btw you can use CTRL+C to halt program's execution if something goes wrong
or it takes too long, etc.

thanks
it's great if somebody can find it useful but it's not for everyone though
most people wouldn't know what to do with this anyway
maybe i'll make a web page someday and just throw everything there with descriptions and so

update to v1.7.0:
- fixed sector buffer output
- rised parameter nr. to 6, for some obscure commands
- switched () and L1+R1 + () behavior, so now by default only set command will execute
- Start => CdFlush; L1+L2 + Start => CdInit
- set pregaps to different tone, so there would be audiable difference between gaps and tracks
added readme.txt with full description of keys
bundled with cdrX & sbi2sub into one single archive
http://www.mediafire.com/?nzmttnwi0ut


edit:
SCPH-5502 PAL
BIOS: 3.0 01/06/97 E => crc32 = d786f0b9
ID: SCEE
TEST 0x20: 97 01 10 C2
TEST 0x22: 'for Europe'
TEST 0x23: CXD2545Q
TEST 0x24: CXD2545Q
TEST 0x25: CXD1815Q

SCPH-102 PAL
BIOS: 4.5 05/25/00 E => crc32 = 76b880e5
ID: SCEE
TEST 0x20: 99 02 01 C3
TEST 0x22: 'for Europe'
TEST 0x23: CXD2940Q
TEST 0x24: CXD2940Q
TEST 0x25: CXD2940Q

update to v1.1:
- fixed waiting for threads to close, when none is running
- fixed successive calls to CDRgetBufferSub
- added option to mute CD audio, when range hits on data track
- added option to specify how many secors to skip on read errors
- improved caching for some specific cases
bundled with PSX ROMid & sbi2sub into one single archive
http://www.mediafire.com/?nzmttnwi0ut

great
thank you very much

Error: Error writing file '/tmp/MYZ2gamt' (Errcode: 28)

84

(7 replies, posted in General discussion)

oh, i'm very sorry, i forgot IsoBuster doesn't actually detect gaps, so there could be problems with CDs having CDDA
but you could use ImgBurn instead: .img should be fine for LibCrypt protected CDs, .bin for the rest
or you could check Create cue-sheet in CloneCD and throw away .ccd & .sub for unprotected games

85

(7 replies, posted in General discussion)

yes, pretty much everything unprotect will be ok.
those 2352 bytes per sector, it's all user data space there is on CD-ROM

about list, i would not know, most complete i think was this one
but it definitely doesnt have all titles
instead, prior of making backups, you could use Dremora's psxt001z with --libcryptdrvfast parameter
to check your CDs, as described in guide, it does a great job and takes only few seconds
output summary for protected CDs would have LC1 or LC2 as multiple of 8

Original sectors: 32
LC1 sectors:      32
LC2 sectors:      0
Other sectors:    0

or it could be not quite, but close to that , 31 for example, on some rare occasions, like when CD got scratched

for CCD i think it was either Protected PC Game or Game CD,
that profile should have Read Subchannel enabled for both: Data and Audio in it

86

(7 replies, posted in General discussion)

hi hardrider
IsoBuster does not save subchannels, so it's only raw sectors (2352 bytes of main channel data).
this is sufficient for USA / Japan CDs, but for European (occasionally being protected with LibCrypt)
you'd need something more, e.g.
.ccd + .img (2352 main channel = IsoBuster's .bin) + .sub  (96 bytes from subchannels) from CloneCD, ImgBurn or Alcohol
unless, of course, when you know, that this particular European release isn't protected

thanks Haldrie.
i completely agree with you. to be honest, reason why i started this, was because i thought i could at least for a bit improve some low level functionality, that i saw was lacking. turned out CD plugins are very limited and whole PSEmu plugin concept completely outdated. unfortunately ePSXe 1.7.0 itself is quite bug ridden also, so, even things that should work, do not. so, ePSXe -  it was amazing, undeniably, it had it's time and without it maybe there wouldn't be those newer emulators, but, if i'd be in situation, where i'd have to choose, which project to support, pSX and XEBRA would be the ones. but, nevertheless, i hope this would be useful to some, particularly when messing with LibCrypt.

edit: oh, and it's only one that would work with my IDE->USB adapter, so if somebody had problems with other plugins not accessing drive this might as well work.

http://www.mediafire.com/?nzmttnwi0ut

for now it doesn't support images, only drives, real or virtual
but i'll try to add those later, within a month or two

16-bit key under LibCrypt section in configuration menu
is where you can enter actual LC key aka Digital ID aka MagicWord
to override one calculated from Q subchannel
for instance, if CD got scrached and won't pass check anymore
or if you want to experiment and see how it works

calculation is as follows:
psxt001z by Dremora, v0.21 beta 1

Subchannels offset correction: -1

Reading sector 13955... original sector \ bitF = 0
Reading sector 13960... original sector /
Reading sector 14081... original sector \ bitE = 0
Reading sector 14086... original sector /
Reading sector 14335... LibCrypt, LC1 sector \ bitD = 1
Reading sector 14340... LibCrypt, LC1 sector /
Reading sector 14429... LibCrypt, LC1 sector \ bitC = 1
Reading sector 14434... LibCrypt, LC1 sector /
Reading sector 14499... LibCrypt, LC1 sector \ bitB = 1
Reading sector 14504... LibCrypt, LC1 sector /
Reading sector 14749... original sector \ bitA = 0
Reading sector 14754... original sector /
Reading sector 14906... LibCrypt, LC1 sector \ 1
Reading sector 14911... LibCrypt, LC1 sector /
Reading sector 14980... original sector \ 0
Reading sector 14985... original sector /
Reading sector 15092... original sector \ 0
Reading sector 15097... original sector /
Reading sector 15162... LibCrypt, LC1 sector \ 1
Reading sector 15167... LibCrypt, LC1 sector /
Reading sector 15228... LibCrypt, LC1 sector \ 1
Reading sector 15233... LibCrypt, LC1 sector /
Reading sector 15478... original sector \ 0
Reading sector 15483... unknown        /
Reading sector 15769... LibCrypt, LC1 sector \ 1
Reading sector 15774... LibCrypt, LC1 sector /
Reading sector 15881... LibCrypt, LC1 sector \ 1
Reading sector 15886... LibCrypt, LC1 sector /
Reading sector 15951... original sector \ 0
Reading sector 15956... original sector /
Reading sector 16017... original sector \ bit0 = 0
Reading sector 16022... original sector /

backup copy, that's, to my knowledge, for some strange reason, is never used:
Reading sector 41895... original sector
Reading sector 41900... original sector
Reading sector 42016... original sector
Reading sector 42021... original sector
Reading sector 42282... LibCrypt, LC1 sector
Reading sector 42287... LibCrypt, LC1 sector
Reading sector 42430... LibCrypt, LC1 sector
Reading sector 42435... LibCrypt, LC1 sector
Reading sector 42521... LibCrypt, LC1 sector
Reading sector 42526... LibCrypt, LC1 sector
Reading sector 42663... original sector
Reading sector 42668... original sector
Reading sector 42862... LibCrypt, LC1 sector
Reading sector 42867... LibCrypt, LC1 sector
Reading sector 43027... original sector
Reading sector 43032... original sector
Reading sector 43139... original sector
Reading sector 43144... original sector
Reading sector 43204... LibCrypt, LC1 sector
Reading sector 43209... LibCrypt, LC1 sector
Reading sector 43258... LibCrypt, LC1 sector
Reading sector 43263... LibCrypt, LC1 sector
Reading sector 43484... original sector
Reading sector 43489... original sector
Reading sector 43813... LibCrypt, LC1 sector
Reading sector 43818... LibCrypt, LC1 sector
Reading sector 43904... LibCrypt, LC1 sector
Reading sector 43909... LibCrypt, LC1 sector
Reading sector 44009... original sector
Reading sector 44014... original sector
Reading sector 44162... original sector
Reading sector 44167... original sector

Original sectors: 31
LC1 sectors:      32
LC2 sectors:      0
Other sectors:    1

i.e. bit is set, when both sectors from pair are modded
actual content of Q channel doesn't matter,
since PSX drive won't even use content in such case
instead it would return data from previous sector then
and that's what LibCrypt algorithm exploits

so for given example key would be:
0011 1010 0110 1100 = 0x3a6c (it's PAL 'Dino Crisis' btw)

also it's pretty easy to derive those values from DB data:
those kept would be ones and missing sectors would be 0

e.g. it's cec1 for 'Ape Escape', 89ea for 'Mulan', 096f for 'Speed Freaks',
e728 - 'Crash Bash', 90af - 'Italian Job', and so on

if necessary, it's also possible to turn on logging to file
and see how calculations are done on real CDs
log will be saved to 'cdrX.log' in the same dir where plugin is

i recall there were problems with quotation marks in names
but i couldn't find any in recent submissions
also just tried removing leading dots from '...Iru', but that's not it
other than i just don't see anything unusual
http://redump.org/discs/sort/added/dir/desc/system/psx/
those are the only ones that were added on 10.29.:
Gallop Racer
Blam! Machinehead
Epidemic
Paradise Casino

very strange

90

(11 replies, posted in General discussion)

sometimes IsoBuster might work better
but you'd have to extract data on multiple drives to be sure
and align it manually

hi Feltzkrone
i can confirm that Plextor Premium return 294 additional bytes with this parameter,
so it pretty much looks like c2
d8 command is described in SCSI-2 Command Reference Manual
but it does not list those options beyond 3, maybe in some later revisions,
but then i'd guess very few devices would support this

By the way, we always assume that that gap was silence so we use 00's to fill the track 2 pre gap but if there is data in that pregap? it isn't better to extract the data track and the audio track and use the ReMove program to move the gap from the end of track 1 to the beggining of track 2? Maybe we should always use this program in discs with only one audio track.

we would have to address garbage at the beginning of gap anyway
but you could use reMove to cut off this gap and it should inform how many samples different from 0x00 there were
if this value coincide with predicted offset (from Plextor, swapping or just different drive), it's pretty safe to do 'psxt001z --gen'
in opposite case gap's content can be verified to determine further action

what do you think? should I preserve this or remove it? is it garbage?

the garbage that is removed along with gap is nonexistent on actual media, it's an artefact of decoding,
always manifesting on data/audio boundary
you can tell buy descrambling it and it should form data sectors closest to audio data

93

(1 replies, posted in General discussion)

it's +76 in both cases:
sample is made of 4 bytes (16 bits for each audio channel), meaning 4 samples per row
19 full rows = 19 * 4 = 76 samples

but generally, though it's very rare for results to differ,
IsoBuster method would be least reliable

have you tried changing your IP?

it's often enough to change MAC address
or sometimes it could be linked to PC name too

95

(5 replies, posted in General discussion)

i think that would be great

new version
http://www.mediafire.com/?nzmttnwi0ut
http://img197.imageshack.us/img197/2930/psogl2001s.png

it adds CD unit control commands, since cdinfo.txt
http://psx.rules.org/psxrul2.shtml
http://hitmen.c02.at/html/psx_docs.html
and this document here
http://members.at.infoseek.co.jp/DrHell/ps1/index.html
were so interesting

so one can now retrive CD unit's chipset information, SCEx code from CD/Modchip,
execute those undocumented test commands, etc.

input besides to what's given on screen:
L2 - flip lower section
R2 - flip output buffer pages
/\ - set max value ($ff)
>< - set min value ($00)
[]+DPad - do things faster
L1+R1+() - execute selected command only (otherwise it's always followed with $1a)
this is sometimes neccessary, eg. for PLAY Command to work properly
L1+R1 + rest buttons - operate with Commands instead of Parameters
(e.g. if you'd want to swap CD you could use STOP command)
SELECT - change video mode
(i'm not sure if it works since all TVs i could get to support both PAL & NTSC but at least it will change resolution
basically video mode will be set on startup based on ROM detected so likely you won't need to use this at all
but you could try if you don't get an output for example)

chip IDs i get from my SCPH-5502 are:
CXD2545Q from sub-commands 23&24. it's servo system + signal processor,
so likely 23 is for servo & 24 for sp or vice-versa
CXD1815Q from 25. this is CD-ROM decoder
subcommand 22 return: 'for Europe'
subcommand 20: 97 01 10 C2, which @DrHell's page given above is described as Year, Mon, Day, Ver and it does look so

sub-commands 60 & 71..76 look interesting, could be they return unit's internal memory content

and please be careful with 00..1a - those control drive mechanics, like you can make it spin with tray open - don't do it
only interesting ones in this range appear to be 04 & 05

IsoBuster is just wired this way, to give this warning
you wouldn't get it with other programs

additionally, to be certain, you could try to descramble this garbage data
and would it match to last few data track sectors, it's pretty sure to be just usual offset manifestation then
(though from fragment you provided in 1st post it's already apperant it comes from empty Mode1 sector with LBA:128015
which is expected last data track sector)

chances of running into one of those CDs F1ReB4LL is referring to,
with this garbage actually being mastered in, are very slim
probably there aren't more than 10 of those in whole DB

i mean your offset is 2 full sectors + offset from 3rd
it's described in guide

guide wrote:

Note 2: It is also possible that the sector is full of data. A full sector contains 2352 bytes of data. If the first sector is full of data, browse on to the next sector(s) and make sure all data is counted until you reach the end of the data (start of zeroes).

yeah, it could be F1ReB4LL, but if persond doesn't have Plextor and is not going to open drive up
it's the only thing left

it's just the way IsoBuster reacts to this scrambled data exceeding sector
i do get this warning on 1858 offset drive almost every time
so combined offset for this CD would be (2352+2352+$02d0)/4=1356
to confirm gap, you could check whether 128015 is last sector for data track

i've stumbled upon this thread
http://psxemulator.proboards.com/index. … hread=2601
it's quite interesting but unfortunately i didn't had hardware to actually transfer BIOS from console to PC

so instead i've wrote program that calculates CRC directly on PSX
and compares this value against existing db: http://redump.org/datfile/psx-bios/

very easy - record CD, boot on PSX, and you'll get CRC + status: dumped or not yet
http://www.mediafire.com/?nzmttnwi0ut

didn't want to revive that theread there
and my results from SCPH-5502 are as expected anyway:
System ROM Version 3.0 01/06/97 E
CRC32: d786f0b9
so nothing new but at least i'm sure now this is a good ROM

maybe somebody else feels like checking out his system
if it turns out undumped, you could use Shendo's program then
http://forums.ngemu.com/misc-psx-discus … guide.html
or ask somebody with right equipment to do it for you