Discussion (Need help to fix) Advanced SX OS cheat code for Dark Souls Remastered

Discussion in 'Switch - ROM Hacking, Saves, Translations & Tools' started by ayssia, Oct 21, 2018.

  1. ayssia

    ayssia Newbie

    May 21, 2018
    United States
    The value address in Dark Soul Remastered is dynamic, so I checked SX OS hacker guide and found a way to get the correct address.
    Hacker guide: https://team-xecuter.com/forums/threads/155007-SX-OS-Cheat-Hacker-Guide

    1. The "player data" memory block always start at [HEAP + 0xA2BCE000].
    2. The first pointer locates at [HEAP + 0xA2BCE008].
    3. Go to the pointed address, for example, it's [HEAP + 0xA2BCE0F3] this session. the next pointer locates at [HEAP + 0xA2BCE0F8]. Yes, just increase the address with 0x0000005.
    4. Repeat step 3 a few times. I'm stuck here, it's not a fixed value. (Between 20 and 26 in my experience.)
    5. Now we are at player data address. It looks like this:
    "ce 06" is health of player (HEAP + 0xa2bd18d4, HEAP + 0xa2bd18d8, HEAP + 0xa2bd18dc).
    "a0 00" is stamina of player (HEAP + 0xa2bd18f0, HEAP + 0xa2bd18f4, HEAP + 0xa2bd18f8).
    "4e 32 28 32 2d 32 32" is base stat of player (from HEAP + 0xa2bd1900 to HEAP + 0xa2bd1930).
    "09" is humanity of player (HEAP + 0xa2bd1944).
    "36 01" is character level (HEAP + 0xa2bd1950).
    "0e 0d 16 16" is souls you have (HEAP + 0xa2bd1954).

    I wrote a code and It doesn't work (even if the number in step 4 is correct), could anyone fix this? I have no idea what's wrong here.
    [Humanity 10]
    581F0000 A2BCE008 // Read the first pointer in register #F
    300C0000 0000001A // Repeat 26 times
    581F1000 00000005 // Increase the address by 5 in register #F
    310C0000 // Loop
    400E0000 00000000 00000091 // Load 0x91 into register #E (Humanity offset)
    640F01E0 00000000 0000000A // Set Humanity to 10. Address is #F+#E.
    Edit: The comments are just showing what I want to do here, don't put comments in actual cheat file.

    Edit 2: It seems there are always a [MAIN + 0x01b08408] pointer under the correct address (the second line in the pic), maybe it's helpful to locate the correct block.
    Last edited by ayssia, Oct 21, 2018