On Feb 10, 2012, at 4:24 PM, Dan Kegel wrote:

> On Fri, Feb 10, 2012 at 2:00 PM, Charles Davis <cda...@mymail.mines.edu> 
> wrote:
>>> -            p->StartingDataSector = l->start_sector;
>>> -            p->EndDataSector = l->end_sector;
>>> -            p->EndLayerZeroSector = l->end_sector_l0;
>>> +            p->StartingDataSector = GET_BE_DWORD(l->start_sector);
>>> +            p->EndDataSector = GET_BE_DWORD(l->end_sector);
>>> +            p->EndLayerZeroSector = GET_BE_DWORD(l->end_sector_l0);
>> I don't know about this. To make your original patch work right on Mac, one 
>> of the things I had to do was get rid of the OSReadBigInt32() calls that 
>> swapped the endianness of the sector fields from big to host.
> 
> This was needed for Dragon Age Origins able to detect its disc, see
> http://bugs.winehq.org/show_bug.cgi?id=29667
> That's our source of truth, I guess.
Huh. I guess then that's a problem with your test program, which fails because 
the descriptor returned from SCSI pass-through (at least, on Mac) has those 
fields in big-endian order, but the descriptor returned from the IOCTL has them 
in host order, and the test program compares them directly without swapping one 
or the other.
>  Do you have a copy of Dragon Age
> handy to test with?
No, not for Windows, anyway. I have plenty of other DVD games, though.

Chip



Reply via email to