Hi Bret (continuing on -devel again)
DOSBOX implements only the audio Q-channels subchannel data, as does UDVD2. With OAKCDROM, you can also use another call to get all raw subchannels and then extract whatever you want to know from them, maybe CD TEXT, maybe some copy protection data. With DOSBOX and OAKCDROM, you can access the UPC/EAN, which you can not yet access with UDVD2. Again, we do not know which of the two are required by the protected games. So in theory, games which rely only on UPC could work in DOSBOX, while games which need sub-channels beyond the timestamp subclass of Q-channel data would neither work with DOSBOX nor UDVD2, but probably work with OAKCDROM. Note that to use UPC in DOSBOX, you either have to use a real CD in the host OS or (I think) first configure metadata about your ISO. Maybe there are file formats for CD images which already include that, no idea. I think implementing UPC/EAN in UDVD2 would be easier than implementing "all raw subchannel data", because I would guess that Jack's Q-channel timestamp reader code could be recycled for that: Simply change the required Q-channel type from timestamp to UPC/EAN, then do some format transformation of the returned data to interpret it as UPC instead of timestamps? See the "ReqAQI" implementation in the UDVD2 sources, or to be more exact the "RdAST2" implementation. The trick is that to get the "Audio STatus", you read any audio subchannel with any settings, so Jack chose to let RdAST2 read exactly the right type of Q-channel data to match the needs of the audio Q-channel for timestamps (where relative to CD and track start you are listening to at the moment). This covers two topics with one and a half implementations and contributes to keeping the driver compact. To read the UPC, you would have to use other command bytes (see RdAST2) to request a different type of Q channel data, but the rest of the code would look very much like RdAST2 and ReqAQI, as far as I can tell :-) Note that I am no expert for ASPI/SCSI/ATAPI/similar. There is no bug in Jack's implementation of the UPC read or the "read all raw subchannels" IOCTL call, there simply is not yet an implementation of those. Regards, Eric _______________________________________________ Freedos-devel mailing list Freedos-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-devel