Go Back   The PokéCommunity Forums > Members List
Reload this Page kearnseyboy6's Profile

Notices
For all updates, view the main page.



kearnseyboy6 kearnseyboy6 is offline

Aussie's Toughest Mudder

Visitor Messages

Showing Visitor Messages 1 to 15 of 275
  1. Splash
    1 Hour Ago 05:56 AM
    Splash
    In your adding new evolutions tutorial:
    where can i find the F0 19? Where is the offset? Sorry im kinda confused on that part -.-

    I changed the ini but the alignment is kinda messed up now.. is that really how it goes and ill have to edit every last pokemon or am i doing it wrong?
  2. Splash
    1 Day Ago 03:38 AM
    Splash
    So I'll just change that 0E to 30? Got it! Thanks man..
    Oh and another mini question.. I saw your asm about telling the time in criminon's tutorial and was wondering if that was compatible with JPAN's engine?
  3. Splash
    1 Day Ago 08:45 AM
    Splash
    Hi I have another question: When I searched 0x42FAA in hex i didnt see F0 19 in the offset instead I found 0E 28.. Should I still change it to B0 00? I'm using MrDS' rombase btw..
  4. Splash
    2 Days Ago 02:43 AM
    Splash
    i see thanks
  5. Splash
    2 Days Ago 12:58 AM
    Splash
    So I can just use any of the two?
  6. Splash
    2 Days Ago 06:18 PM
    Splash
    Hey man I was wondering if your evolution methods like day time induced item hold need prime-dialga's DNS System or Jambo's Day/Night?
  7. FamiliaWerneck
    2 Weeks Ago 05:53 AM
    FamiliaWerneck
    I didn't know I could not cancel a stone evolution. If we could make it impossible to cancel Slowpoke's evolution, that would be perfect.
    Are you sure you don't know how that works?
  8. FamiliaWerneck
    3 Weeks Ago 07:26 AM
    FamiliaWerneck
    Ok, I understand now the special routine thing.

    So basically, what you are saying is that there's no way to cancel with the B button all this custom evolutions you guys did?
    Or you are saying the evolution screen only loads if the routine is true? That way, canceling the evolution via the B button is standart (default, whatever) and there's no need to implement it. Is that it?
  9. FamiliaWerneck
    3 Weeks Ago 07:21 AM
    FamiliaWerneck
    Almost everything is pretty much clear, now. I did saw your link, but got nothing out of it.
    Looking now, I find some important stuff. Still kinda lost with the special routines. You will understand.
    Let's see if I get it.
    Check this:
    Spoiler:
    .text
    .align 2
    .thumb
    .thumb_func
    .global mantykeevo

    main:
    push {r0-r7}
    add r0, r6, r7
    lsl r0, r0, #0x3
    add r0, r2, r0
    add r3, r0, r3
    ldrh r2, [r3, #0x2] @up until here, all standart stuff
    mov r5, #0x0 @counter for the party Pokémon

    loop: ldr r0, firstpoke @loads the first Pokémon in your party, I think... (speacil routine, don't get it, you see)
    mov r1, #0xB @moves the information B bytes, so you get the species byte (now, this I got from the link you gave me)
    mov r6, #0x64 @this moves 64 bytes, which is the total bytes for a party Pokémon
    add r4, r5, #0x0 @this adds the counter of the party Pokémon, so you know what Pokémon you are currently checking
    mul r4, r6 @this multiplies the 64 bytes for the counter of party Pokémon, so it jumps all the bytes of the Pokémon that were already checked.
    add r0, r0, r4 @this adds the current Pokémon to be checked to the first Pokémon, so the game knows it's going to jump X bytes starting from the first Pokémon
    bl decrypt @it branches to the "decrypt" section and returns here after that
    mov r9, r0 @moves safely the Pokémon that is to be checked in r0 to r9
    pop {r0-r7} @clears the registers
    mov r1, r9 @move the Pokémon from r9 to r1
    cmp r1, r2 @compares the current Pokémon species with the argument stored in r2
    beq levelcheck @if it is the right species, it goes to levelcheck
    cmp r5, #0x5 @it compares the Pokémon counter to five (with 0, 5 will be the sixth Pokémon, meaning you have no more party Pokémon to compare with)
    beq exit @if you don't have any more Pokémon to compare, it doesn't evolve
    add r5, #0x1 @if you have more Pokémon to compare, the counter is added by one, so you go to the next Pokémon when it loops
    b loop @restarts the looping

    levelcheck: mov r10, r3 @moves the information in r3 to r10 (what information, exactly, I don't know...)
    pop {r0-r7} @clears the registers
    mov r1, r10 @moves the information back safely to r1
    ldr r0, levelcheckloc @actually makes the evolution happen?
    bx r0 @ends the evolution?

    exit: pop {r0-r7} @clears the registers, as the requirements for evolutions were not met
    ldr r0, noevo @loads back the overworld, from what you told me
    bx r0 @ends the routine?

    decrypt: push {r0-r7}
    ldr r2, decryptpoke @loads the current Pokémon species in r2
    bx r2 @returns the current Pokémon species and stuff to r2

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


    Is that it? Did I get it all?
    You see what I meant, by me still not getting some stuff?
    Also, where in the code is the function "Cancel evolution by B button"?

    Ok, and now, if that was all correct (or not =P), this would be for the Slowpoke with Shellder's removal:
    Spoiler:
    .text
    .align 2
    .thumb
    .thumb_func
    .global slowpokeevo

    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 r5, #0x0

    loop: ldr r0, firstpoke
    mov r1, #0xB
    mov r6, #0x64
    add r4, r5, #0x0
    mul r4, r6
    add r0, r0, r4
    bl decrypt
    mov r9, r0
    pop {r0-r7}
    mov r1, r9
    cmp r1, r2
    beq levelcheck
    cmp r5, #0x5
    beq exit
    add r5, #0x1
    b loop

    levelcheck: mov r10, r3
    pop {r0-r7}
    mov r1, r10
    ldr r0, levelcheckloc
    HackMew's (or anyone else's) Pokémon removal code (where I would use a b function and either write the other code here too [bl in that case], or somewhere in the ROM and specify its address down here)
    bx r0

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

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

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

    Would that be it?
  10. FamiliaWerneck
    3 Weeks Ago 08:17 AM
    FamiliaWerneck
    No problem, I stay on all the time.
    Here goes then:
    Spoiler:
    ldrh r2, [r3, #0x2] @this loads the 'argument' you see in G3HS. There is no need for this...

    If this is not necessary, why is it there? I don't get it. If it loads the argument in G3HS, isn't this important?

    Spoiler:
    bl decrypt...

    About the b function, in the tutorials I read, there's no "l" to combine with it. All the combinations are two letter big, like eq or ge. What this "l" and the "x" (bx function) does with combined with b?
    What does decrypt do? Do you specify it later in the code? I ask this, because in some other code I saw a b"something" "label", but this label was not specified in the same code. What goes on here?

    Spoiler:
    mov r6, #0xC @move data is 12 bytes long ie. 0xC

    Ain't registers supposed to store only a word (4 bytes, two half-words...)? Why 12 bytes stored in a single register? Or is it just the address of the move data information?

    Spoiler:
    cmp r4, #0x16 @This must be the value assigned to Fairy? check the MrDS ini to confirm.

    I believe Fairy's type number is #0x17. Not sure though (not using Fairy).

    Spoiler:
    decrypt:
    push {r0-r2}
    .
    .
    .
    ldr r2, decryptpoke @loads the special routine
    bx r2 @gets the move and puts it in r2 and goes back to the loop

    How can you push r0, r1 and r2 if you didn't pop them back when you enter this branch?
    What is decryptpoke (special routine, reading what you said. But how do I know what it does? What are this special routines?)?
    Again, b function, with the "x" I told you. What's up with that? (Also, what is b used for with no other letter?)

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

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

    How can you use r9 without pushing it?
    levelcheckloc and noevo are, by the way things are going, special routines. For what? Do they cover the "Cancel evolution with B button" thing?

    Spoiler:
    .align

    Finally, why .align in the end? And why not .align2?

    That's all for this code. It did seem pretty simple in the middle. My problem is mostly, looking at it now, the functions and special routines. Other stuff look as a normal programming language now that you explained.
    Thanks again for taking the time for it. You are an awesome person!
  11. FamiliaWerneck
    3 Weeks Ago 05:39 AM
    FamiliaWerneck
    Can I still ask stuff I don't understand? Do you have facebook, or other way we could talk faster?
    Bet I can take all my doubts in 10 minutes... =/
  12. FamiliaWerneck
    3 Weeks Ago 02:10 AM
    FamiliaWerneck
    I just can't believe you man!
    You don't exist! *-----*
    Thanks a lot! Is there something I can do to thank you for this man?
    You can't imagine how happy I am. Thanks!
  13. FamiliaWerneck
    3 Weeks Ago 09:05 PM
    FamiliaWerneck
    No need to test.
    I actually wanted a step-by-step explanation of your own routines, and then show you what I can make of it.
    For example, I'll take the Male Evolution. Let's look at it in parts:

    Part 1:
    Spoiler:
    .text
    .align2
    .thumb
    .thumb_func
    .global maleevo

    Until here, all good. Every simple tutorial has these explained. They just need to be there, ok, got it. Thank you, you are welcome.

    Part 2:
    Spoiler:
    main:
    push {r0-r7}

    Ok, main is called and you start the code by pushing register r0 to r7 (total 8 registers) into the stack. Here lies my first doubt. Why, like in three tutorials I saw in the site, you didn't push lr (link register) into the stack, aswell?

    Part 3:
    Spoiler:
    add r0, r6, r7

    Well. Right here is where all my reasoning breaks. Why do you add r6 and r7 and place the result in r0? I mean, you just pushed those registers into the stack. Weren't they supposed to be empty? Why did you add those? How could you? (Too dramatic? =P Just kidding. But seriously...) And what does this add do? What is stored in r6 and r7 that you need added?

    Rest of the code:
    Spoiler:
    lsl r0, r0, #0x3
    add r0, r2, r0
    add r3, r0, r3
    ldrb r2, [r3, #0x2]
    mov r0, r8
    bl decrypt2
    mov r11, r0
    pop {r0-r7}
    mov r1, r11
    cmp r1, r2
    blt exit
    mov r0, r8
    mov r1, #0xFF
    ldr r0, [r0, #0x0]
    and r1, r0
    mov r0, r8
    bl decrypt
    mov r11, r0
    pop {r0-r7}
    mov r5, r11
    ldr r2, pokemondata
    mov r4, #0x1C
    mul r5, r4
    add r5, r5, r2
    ldrb r5, [r5, #0x10]
    cmp r1, r5
    blt exit
    mov r10, r3
    pop {r0-r7}
    mov r1, r10
    ldr r0, levelcheckloc
    bx r0
    exit: pop {r0-r7}
    ldr r0, noevo
    bx r0
    decrypt: push {r0-r7}
    mov r1, #0xB
    ldr r2, decryptpoke
    bx r2
    decrypt2: push {r0-r7}
    mov r1, #0x38
    ldr r2, decryptpoke
    bx r2
    .align
    levelcheckloc: .word 0x0804310D
    noevo: .word 0x08043111
    decryptpoke: .word 0x0803FBE9
    pokemondata: .word 0x08254784


    I won't ask the rest until I understand parts 2 and 3.
    If you wanna help (and it's no problem, of course), I'd love to learn from you. I swear I'm very dedicated and a fast learner, though this may be disguised by my curiosity. =P
    joexv also said he wanted to help me. =D
    Anyways, thanks in advance man. You are awesome!
  14. FamiliaWerneck
    3 Weeks Ago 04:40 AM
    FamiliaWerneck
    Sup man.
    Sorry bothering you with stuff likethis.
    Can you help me in the ASM field?
    I started studying it this week, and I'm getting better, but I need help with the evolution routines.
    Can you check if what I do is right? I believe from a code to another, I'll just have to change the item, as the evolution method will be probably the same.
    Can you help?
  15. FBI agent
    May 31st, 2015 04:04 AM
    FBI agent
    0x8000 = 0x0 ; Pokemon is put in party
    0x8000 = 0x1; Pokemon is put in storage

    0x8004 = Pokemon slot number.

About Me

  • About kearnseyboy6
    Olympics Region
    Kalos
  • Signature
    HOLIDAYING CURRENTLY!!

Statistics

Total Posts
Activity by Forum
Visitor Messages
Blog
General Information
  • Last Activity: 3 Hours Ago 04:21 AM
  • Join Date: December 28th, 2008
  • Referrals: 0

Friends

Showing Friends 1 to 16 of 16

All times are UTC -8. The time now is 07:35 AM.