FSPXI:ReadFileSHA256: Difference between revisions

Luigi2us (talk | contribs)
No edit summary
Luigi2us (talk | contribs)
No edit summary
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.