// Get number of bytes read so far
u32 getNumBytes() const
return m_nOffset/8 + 1;
I spent 3 hours tracking down this sodding save CRC bug. The problem is that the CRC was right all along, it was just saving one byte too few (The CRC is at the end of the data), so the last few bits of the CRC were chopped off.
See if you can spot the bug, it's reasonably obvious (m_nOffset is in bits).