• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.
L
Reaction score
80

Profile posts Latest activity Postings About

  • I'm a little busy this weekend, I'll start about Feb 18th ish, maybe earlier if I have time.
    Oh, have you read the second part of my intermediate tutorial? It explains that.

    Anyways, it's like:


    You would compile that, and place it at 08028D40. Hook via R1 just means you need to use register one to do the branch.
    What I gave you was the code, and insertion instructions to make some ability behave like cloud nine or air lock. It's up to you to make the new ability. To give the new ability it's function, in the ASM I gave you, you want to replace [New ability ID] with whatever ability ID you gave your Ability. Inserting new abilities is a different problem, which doesn't require ASM. To give the abilities actual effects is where the ASM comes in. You can read about it in the R/D section.
    By the way, were you still looking at adding abilities that do what Cloud Nine and Air lock do?

    I made the ASM for it.


    insert a hook via r1 at 08028D40.
    Send me a save state with a Pokemon which evolves via happiness. Make sure that the Pokemon is maxed happiness too. (Maybe have a rare candy in your bag too :B
    OK, basically for testing purposes, I need a Pokemon with max happiness and the item. Without a save state with that situation, I won't be able to test my code.
    I can, but I'm going to need a save state to a situation where a Pokemon you would want to evolve. If you can do that, I don't mind writing/helping you write a routine for that.
    Actually, I jumped the gun. There's only two things you need to change, and it will work for Firered.

    ROUTINE is at 0x0809D955
    VAL is at 0x080CC145

    Then it will work!
    No with this 0xFFFF is being stored at 0x20370B8 (which is a RAM address).
    If you want to copy some values in RAM into another portion of RAM, take a look at my PSS. It copies rather large portions of RAM around. It uses a function to do this, just take a look and you might understand.
    .align 2
    .thumb

    MAIN:
    push {r0-r4,lr}
    add sp, -#0x8
    ldr r0, VAL
    str r0, [sp, #0x4]
    ldr r1, MEMLOC
    mov r0, #0x3
    mov r2, #0x0
    mov r3, #0xFF
    bl JUMP
    add sp, #0x8
    pop {r0-r4, pc}
    JUMP:
    ldr r4, ROUTINE
    bx r4

    .align 2
    VAL: .word 0x080861CD
    MEMLOC: .word 0x020375D8
    ROUTINE: .word 0x080E2D79

    The items in red are the parameters the function takes in Glazed. r0 has the type of keyboard to display, such as PC BOX or the like, and r1 has the memory address the input will be placed. I currently have it set to place the letters in variables 0x8000 to 0x8004. I have no idea what r2 and r3 are for, but they appear to be necessary.
    There's a small ASM Routine I made, with the help of a friend. You pass the type of keyboard (Player Name, Pokemon Nickname, etc.) and where the entry will be placed in memory when the player hits done. It then calls a routine that already existed in the game.

    If you can find that routine, then you ought to be able to do what I did.
    Your thread will need to be posted in the Progressing Hacks forum, and then if it garners the attention of other members or the moderators then hopefully it will be recommended for a future contest!
    Well, variables are only half words. So you can store only 2 bytes in a variable. You do this by doing something like,

    ldr r0, =(0x20370B8)
    mov r1, #0xFFFF @here maybe instead of 0xFFFF you have some other value
    strh r1, [r0]
  • Loading…
  • Loading…
  • Loading…
Back
Top