Changes

196 bytes added ,  03:08, 21 September 2019
→‎0xDA DVDLowReadDiskBca: Actually the *last* 0x40 bytes, which makes a little bit more sense
Line 1,341: Line 1,341:  
=== 0xDA DVDLowReadDiskBca ===
 
=== 0xDA DVDLowReadDiskBca ===
   −
Reads the first 0x40 bytes of the [https://en.wikipedia.org/wiki/Burst_cutting_area burst cutting area].  Note that [https://debugmo.de/2008/11/anatomy-of-an-optical-medium-authentication/ the actual BCA is 188 (0xBC) bytes long] (at least for some games){{check}}.
+
Reads the last 0x40 bytes of the [https://en.wikipedia.org/wiki/Burst_cutting_area burst cutting area].  Note that [https://debugmo.de/2008/11/anatomy-of-an-optical-medium-authentication/ the actual BCA is 188 (0xBC) bytes long]; the area returned by this command is mostly 0'd except for the last 12 bytes (except for New Super Mario Bros. Wii, which also has a 1 byte before those 12 bytes, which the game checks for as some kind of copy protection it seems).
    
The output buffer size must be ≥ 0x40, or DIMAR and DILENGTH will not be written.  The output buffer also needs to be 32-byte aligned, or else the driver will hang.
 
The output buffer size must be ≥ 0x40, or DIMAR and DILENGTH will not be written.  The output buffer also needs to be 32-byte aligned, or else the driver will hang.
303

edits