Line 9: |
Line 9: |
| |- | | |- |
| | 1 | | | 1 |
− | | File(/archive?) handle lower word | + | | File handle lower word |
| |- | | |- |
| | 2 | | | 2 |
Line 21: |
Line 21: |
| |- | | |- |
| | 5 | | | 5 |
− | | Size of second memory block | + | | Size of read buffer |
| |- | | |- |
| | 6 | | | 6 |
Line 27: |
Line 27: |
| |- | | |- |
| | 7 | | | 7 |
− | | Size of first memory block | + | | Size of hashtable |
| |- | | |- |
| | 8 | | | 8 |
− | | (size of first mem block << 8) <nowiki>|</nowiki> 4 | + | | (size of hashtable << 8) <nowiki>|</nowiki> 4 |
| |- | | |- |
| | 9 | | | 9 |
− | | Pointer to first memory block | + | | Pointer to hashtable |
| |- | | |- |
| | 10 | | | 10 |
− | | (size of second mem block << 8) <nowiki>|</nowiki> 0x14 | + | | (size of read buffer << 8) <nowiki>|</nowiki> 0x14 |
| |- | | |- |
| | 11 | | | 11 |
− | | Pointer to second memory block | + | | Pointer to read buffer |
| |} | | |} |
| | | |
Line 61: |
Line 61: |
| |} | | |} |
| | | |
− | The data read are stored in the second memory block. The first memory block is filled with hashes, in an unknown manner. | + | The data read are stored in the read buffer. For each 0x1000-byte block read, a SHA256 hash of the block is stored in the hashtable. |
| | | |
− | Reads seem to be sector-aligned (one sector = 0x1000 bytes when reading from the cart, not sure if that is true everywhere). The first memory block seems to be filled with one hash per sector read.
| + | It is unknown how hashing behaves if the read offset/size are not aligned to a 0x1000-byte boundary. |