Renegade said:
i've heard of motorola and intel byte ordering.
<lightknight>does it haf anyting to do wit programing a <a href="glossary.php?<r=#">1337</a> gc emulatore??3?3?3?3</lightknight>
seriously though, what is it? is it some sort of thing which rearranges data so that it becomes unreadable to the human in a hex editor?
Ummm Motorola = Big Endian Intel = Little endian.
It's the ordering of the bytes in words longs and long longs
For example
Big Endian:
WORD MSB LSB
LONG MMSB MLSB LMSB LLSB
Little Endian:
WORD LSB MSB
LONG LLSB LMSB MLSB MMSB
It's handy for however the data was stored in the Game Save you are dealing with IE money likely would be stored in a LONG but what byte ordering is a good question.
Originally posted by euphoria
I'm making a savestate editor for Chrono Cross and i'm a bit lost in the CRC section. Is there a certain way of calculating it or is there 2^32 ways to do it or at least does Squaresoft do it same way in all their games? If anyone has knowledge of this i'd apreciate the help.
Besides i haven't found all the necessary values from the file so the CRC isn't needed at the moment.
It depends on the polynomial they used, as for the same way.. doesn't seem that way, they seem to change the polynomial for each game.
FF8 uses a 16bit CRC with a polynomial of 0x1350 or
X^12 + X^9 + X^8 + X^6 + X^4. FF9 used a 32 bit CRC.
The best way to 'break' it is to take a known save state for example At the VERY beginning of Chrono Cross. guess what data is what inside the file then apply polynomials to the data tell you get a match. You have about 2^16 with a 16bit CRC and 2^32 tries with a 32bit CRC.
Might take an hour or two or over night to do but You'll know for sure. The other problem is what is the CRC calculated on. you have to know what the save state data area the PSX is doing the CRC check on. It would be cool if you could extract the CRC tables from the game itself .. that's the best way to know the CRC calculation to be honest.
Cyb