Tales of the abyss crc

Discussion in '3DS - ROM Hacking, Translations and Utilities' started by kiokoman, Oct 11, 2015.

  1. kiokoman
    OP

    kiokoman Member

    Newcomer
    12
    3
    Oct 11, 2015
    Italy
    Hello,
    maybe someone can help me out to find where and how to calculate the crc for the save of tales of the abyss,
    i have converted the .3ds to card 2 format and used savedatafiller to extract the data, i have already found some values inside but as soon as i modify something it result as a corrupted save. inside there are 3 save TOA_000 (slot 1 save) and the only difference is the time elapsed, TOA_001 is the second save slot not modified

    0x0 0xf all the same for all the save
    0x10 0x11 CRC for the load preview
    0x12 0x13 alays the same
    0x14 0x15 016 0x17 CRC for the real data, i think it's what we need to modify value
    0x20 0x23 all the same for all the save
    0x24 save slot (0 / 1 / 2 / 3)
    0x2c 0x2d gald (money) in the load preview (reverse)
    0x30 0x31 time elapsed (?)
    0x38 encounters
    0x3c hits
    from 0x4c you can easily read Baticul,port Luke Tear Guy Anise Jade
    0x217 end of load preview data (?)
    0x218 start of real data
    0x51c 0x51d gald (real money in game, reverse)

    I hope someone can help,
    thanks all
     

    Attached Files:

    Last edited by kiokoman, Oct 12, 2015
  2. kiokoman
    OP

    kiokoman Member

    Newcomer
    12
    3
    Oct 11, 2015
    Italy
  3. hotdog

    hotdog Member

    Newcomer
    22
    29
    Oct 19, 2015
    United States
    The South
    It's four bytes, so it's CRC-32. Try to checksum 0x18 - EOF, reverse the value, convert to an Unsigned32 Integer, then replace 0x14-0x17.

    You made two mentions of CRC locations, so hopefully it is only the second that needs to be changed and not the first as well.
     
  4. kiokoman
    OP

    kiokoman Member

    Newcomer
    12
    3
    Oct 11, 2015
    Italy
    i have tried all the poly found on the wiki for the crc-32, i have used HxD to calculate the crc but it was always different. reversed or not reversed


    example file TOA000 CRC-32 start from 0x14-> 2D 8F 65 6C select data from 0x218 to EOF

    CRC-32

    (ISO 3309, ANSI X3.66, FIPS PUB 71, FED-STD-1003, ITU-T V.42, Ethernet, SATA, MPEG-2, Gzip, PKZIP, POSIX cksum, PNG, ZMODEM)
    Generator Type Big Endian (ABCD) Little Endian (DCBA) Mid-Big Endian (BADC) Mid-Little Endian (CDAB)
    Normal 0x04C11DB7 6CA662F9 F962A66C A66CF962 62F96CA6
    Reversed 0xEDB88320 B60D89E3 E3890DB6 0DB6E389 89E3B60D
    Reversed Reciprocal 0x82608EDB 94314C53 534C3194 3194534C 4C539431

    CRC-32C (Castagnoli)
    (iSCSI & SCTP, G.hn payload, SSE4.2)
    Generator Type Big Endian (ABCD) Little Endian (DCBA) Mid-Big Endian (BADC) Mid-Little Endian (CDAB)
    Normal 0x1EDC6F41 44CC6EE6 E66ECC44 CC44E66E 6EE644CC
    Reversed 0x82F63B78 C6E61D54 541DE6C6 E6C6541D 1D54C6E6
    Reversed Reciprocal 0x8F6E37A0 A79EE968 68E99EA7 9EA768E9 E968A79E
     
  5. hotdog

    hotdog Member

    Newcomer
    22
    29
    Oct 19, 2015
    United States
    The South
    What wiki are you referring to?

    I'm currently finishing up my Mario 3D Land editor, afterwards I will pop in my Tales of the Abyss and see what I can come up with to help you out.
     
  6. kiokoman
    OP

    kiokoman Member

    Newcomer
    12
    3
    Oct 11, 2015
    Italy
    https://en.wikipedia.org/wiki/Polynomial_representations_of_cyclic_redundancy_checks

    that would be really appreciated, i put the Abyss game on hold and i'm currently playing persona q until something happen :huh:
     
    Last edited by kiokoman, Oct 20, 2015