Conversation Between FamiliaWerneck and Joexv
91 to 105 of 155
  1. Joexv
    June 29th, 2015 3:12 PM
    Joexv
    I'll see if I cant work something up then. Did you do mov or add to get your new offset?
  2. FamiliaWerneck
    June 29th, 2015 10:02 AM
    FamiliaWerneck
    I tried moving register 4 by 38 "somethings" (bytes, bits, hex values...) to load the level information before the bl decrypt command, but it didn't work. I compared stuff, but no luck.
    I'm stuck... =/
  3. FamiliaWerneck
    June 29th, 2015 7:24 AM
    FamiliaWerneck
    I'm sorry man, you code didn't work. I'll try putting a cmp r1,r2 to see if it works.
    I'll get back to you once I try that. =D
  4. FamiliaWerneck
    June 28th, 2015 7:17 PM
    FamiliaWerneck
    I'm not so sure I am right too, that just made sense.
    I'll just test what you corrected. If that works, great. If not, I'll try adding/changing stuff to try making it work.
    One code per item, though not efficient, will be easy after the first code works.
  5. Joexv
    June 28th, 2015 6:36 PM
    Joexv
    Hm well I guess I was wrong, geez I really need to start actually paying attention to stuff I'm starting to slack off and give false information. But anyway if that is the level check then you will need to make sure that you copy r2 and r3 to different registries first as they are overwritten by decrypts and stuff.
  6. FamiliaWerneck
    June 28th, 2015 6:22 PM
    FamiliaWerneck
    I just compared this sample code I took from evolving during the day holding an item with another one, to check where does he compare the level to the argument. kearnseyboy6 even says in his thread that r2 holds the argument that is loaded here "ldrh r2, [r3, #0x2]".
    I'm just trying to recreate what I've seen done, since I don't really understand much of how the information is handled in this complicated ASM codes. The functions are not that hard, but what we are actually using, I'm still a bit stuck there.
    Anyways, I'm playing a pirate's parrot here. Like I said, recreating stuff I've seen working.
    But hey, I was out of my house until three hours ago, since Friday.
    Need any help with anything?
  7. Joexv
    June 28th, 2015 3:59 PM
    Joexv
    I was busy this weekend and today I've been at church all morning. But since I just got done a decent amount of progress on my main hack I'll work on that right now.

    Also afaik the level check is done before the evolution even begins to check the routine, unless I'm mistaken and I very well could be.
  8. FamiliaWerneck
    June 28th, 2015 3:19 PM
    FamiliaWerneck
    The cmp r1, r2 was in order to compare my current level (or at least I thought there was where it was stored) to the level I had configured as an argument in G3HS.
    Thanks man, I'll try that and report back to you. =D
    Any developments using the tables, or you busy, or gave up?
  9. Joexv
    June 27th, 2015 11:34 AM
    Joexv
    fixes in bold red
    Spoiler:
    .text
    .align 2
    .thumb
    .thumb_func
    .global LevelMetalCoat

    main:
    push {r0-r7}
    add r0, r6, r7
    lsl r0, r0, #0x3
    add r0, r2, r0
    add r3, r0, r3
    ldrh r2, [r3, #0x2]
    mov r0, r8
    mov r1, #0xC
    bl decrypt
    cmp r0, #0XC7
    bne exit
    mov r11, r0
    pop {r0-r7}
    mov r1, r11
    ldr r0, levelcheckloc
    bx r0


    decrypt:
    push {r0-r7}
    ldr r2, decryptpoke
    bx r2

    exit:
    pop {r0-r7}
    ldr r0, noevo
    bx r0

    .align
    levelcheckloc: .word 0x0804310D
    noevo: .word 0x08043111
    decryptpoke: .word 0x0803FBE9

    Try that. You had the decrypt registers stored wrong, the location you want to check needs to be stored in r1 and it generates the result into r0. Not sure why you had that cmp r1, r2 but it didnt seem needed at all so I removed it. And because I removed that I merged the True section into the main routine.
  10. FamiliaWerneck
    June 26th, 2015 7:18 AM
    FamiliaWerneck
    Don't you prefer trying a separate evolution per item?
    I can make all of them, but I don't think I can do the first without help. Check this:
    Spoiler:
    .text
    .align 2
    .thumb
    .thumb_func
    .global LevelMetalCoat

    main:
    push {r0-r7}
    add r0, r6, r7
    lsl r0, r0, #0x3
    add r0, r2, r0
    add r3, r0, r3
    ldrh r2, [r3, #0x2]
    mov r0, r8
    mov r5, #0xC
    bl decrypt
    cmp r5, #0XC7
    bne exit
    mov r11, r0
    pop {r0-r7}
    mov r1, r11
    cmp r1, r2
    beq true
    bl exit

    decrypt:
    push {r0-r7}
    ldr r2, decryptpoke
    bx r2

    true:
    mov r9, r3
    pop {r0-r7}
    mov r1, r9
    ldr r0, levelcheckloc
    bx r0

    exit:
    pop {r0-r7}
    ldr r0, noevo
    bx r0

    .align
    levelcheckloc: .word 0x0804310D
    noevo: .word 0x08043111
    decryptpoke: .word 0x0803FBE9

    Can't understand why this is not working. I'm not good with moving information from one register to the other... =/
  11. FamiliaWerneck
    June 25th, 2015 2:53 AM
    FamiliaWerneck
    Yeah, I forgot about that option aswell. Having an evolution per item. I have 13 evolutionary items in my list. Not much in my opinion, if we would work things that way.
  12. Joexv
    June 24th, 2015 2:12 PM
    Joexv
    I miss understood lol, sry. If I dont fix it it will bother me that it didnt work so Im gonna see if I cant figure something out. What I might end up doing is having a separate evolution per item, its not efficient but it might work a whole lot better.
  13. FamiliaWerneck
    June 24th, 2015 1:42 PM
    FamiliaWerneck
    What do you mean by making a new Metal Coat? I used Metal Coat in the game. I mean, I gave it to both Scyther and Onix, but nothing happened.
    I tried actually using it, if that's your question, but the game would say "It's not time to use that, playername.".
    No rush man. I'll try my best looking for what's wrong there.
    If you can't manage bro, would be ok if you write a simple level up + item, but no need to specify the level.
    Not ideal, but I can live with that.
  14. Joexv
    June 24th, 2015 1:08 PM
    Joexv
    Ok well the first offsets for the tables you put down wont work as theyre reversed but they shouldnt be. 2nd dont make a new metal coat. It goes by item index not name, so that may have been the issue. Try using the metal coat in game. Im gonna give it a shot too since I got my usb back today.

    EDIT:Tested it and it freezes for me if it fails. I'm thinking I may have missed a pop or something.... idk ill look at it when I get some more free time.
  15. FamiliaWerneck
    June 24th, 2015 12:52 PM
    FamiliaWerneck
    So I've tried them again, but no luck.
    First try, I did the same thing I did in the last time, just to make sure.
    This is the hex code I got:
    Spoiler:
    FF B4 F0 19 C0 00 10 18 C3 18 9A 78 40 46 0C 21
    00 F0 19 F8 06 1C 40 46 0B 21 00 F0 14 F8 05 1C
    40 46 00 23 00 F0 00 F8 0F 4C E4 5A AC 42 04 D0
    FF 2C 0A D0 02 33 FF F7 F7 FF 0A 4C E4 5A B4 42
    06 D0 00 F0 02 F8 09 4A 10 47 FF BC 04 48 00 47
    9A 46 FF BC 51 46 02 31 00 48 00 47 17 30 04 08
    11 31 04 08 1B A7 40 08 1B A7 80 08 E9 FB 03 08

    I was using:
    Spoiler:
    CustoItemTable: .word 0x0840A71B
    CustoPokeTable: .word 0x0880A71B

    Then I tried doing the opposite, not using the pointer to the tables, but the actual offsets for them, like this (like you've suggested before):
    Spoiler:
    CustoItemTable: .word 0x081BA740
    CustoPokeTable: .word 0x081BA780

    And this is the hex code that came from it:
    Spoiler:
    FF B4 F0 19 C0 00 10 18 C3 18 9A 78 40 46 0C 21
    00 F0 19 F8 06 1C 40 46 0B 21 00 F0 14 F8 05 1C
    40 46 00 23 00 F0 00 F8 0F 4C E4 5A AC 42 04 D0
    FF 2C 0A D0 02 33 FF F7 F7 FF 0A 4C E4 5A B4 42
    06 D0 00 F0 02 F8 09 4A 10 47 FF BC 04 48 00 47
    9A 46 FF BC 51 46 02 31 00 48 00 47 17 30 04 08
    11 31 04 08 40 A7 1B 08 80 A7 1B 08 E9 FB 03 08

    Both attempts, after assembling the routines and inserting the codes in free space in the ROM, I set Scyther to evolve to Tentacruel at Level 4, by using LevelItem and Onix to Sandslash, same level. Just to test. Turned Viridian's Pokéball to a Metal Coat.
    I tried evolving them in level 4 and 5, both with and without the Metal Coat, and both Pokémon. None worked.
    I can be even more specific as for where I set the tables, what values and all that. But it's all so simple, I doubt I've screwed up there.
    Any ideas how we might solve this?