< >
Hello, guest! Please log in or register.

The PokéCommunity

Go Back     The PokéCommunity Forums > Members List BlackWhiteRobin's Profile


BlackWhiteRobin BlackWhiteRobin is offline

Visitor Messages

Showing Visitor Messages 16 to 30 of 185
  1. Touched
    2 Weeks Ago 1:18 AM
    It would be quite difficult to repoint, as it actually points to itself in several places. I would recommend you backup, remove it (either manually or using uninstall.ips) and then reinstall it in your new location.
  2. FBI
    3 Weeks Ago 7:07 PM
    Oh, let the Berry system sit out for a while. I'll make a better one in the near future. The current one, there is a small bug with a rountine's execution, and I've been too lazy to fix it because I've been telling myself a better version will be created :P
  3. FBI
    October 23rd, 2015 6:04 PM
    You need to use the partyswap routine inbetween
  4. FBI
    October 21st, 2015 4:21 PM
    Registers r0-r3 are safe to use if you are not hooking :)
  5. FBI
    October 21st, 2015 3:53 PM
    Registers r0-r3 are safe to use if you are not hooking :)
  6. Hopeless Masquerade
    October 21st, 2015 1:14 PM
    Hopeless Masquerade
    Oops. Thanks for spotting that! :)
  7. FBI
    October 21st, 2015 4:47 AM
    Try to step through what is happening.

    ldr r0, .PLAYER_DATA
    ldr r0, [r0]
    This part gets the pointer to the dynamic player data.

    ldr r1, .PLAYER_DATA
    ldrb r0, [r0, #0x8]
    Here you once again load the address of the pointer to the player data (this time in R1). Then you load the gender byte into R0.

    add r0, r0, #0x1 @well, 00 is male and 01 is female so I thought this would be necessary
    strb r0, [r1
    OK, so you add one to the gender byte as opposed to doing mov rX, #0x1. Which is bad. Then you store this gender-byte +1 in r1 which contains an address to a pointer to the trainer data. You haven't actually written anything into the player data structure.

    I know you said you wanted to try it on your own, so I advise you to stop reading the rest of the VM and try it now. I'm going to give you a simple solution incase you wanted reference later on.

    Here's a solution:

    push {lr}
    ldr r0, =(0x300500C)
    ldr r0, [r0] @load pointer
    mov r1, #0x1
    strb r1, [r0, #0x8] @set female
    pop {pc}
  8. FBI
    October 4th, 2015 6:17 PM
    PM me the ROM link. I don't wanna download a patcher
  9. AkameTheBulbasaur
    October 4th, 2015 7:53 AM
    Oh no! It must have been deleted when my Dropbox exploded. I'm re-uploading it now. Sorry for the trouble!
  10. FBI
    October 4th, 2015 6:37 AM
    You'll have to use one of the built in functions to divide. If you're dividing by powers of two, you can use lsr.

    Jambo documented them some ages ago:
    DivMod1 (Takes in R0 as Numerator and R1 as Denominator; Returns INTEGER DIVISION (9/2 = 4 r 1) result to R0): 0x1E4018
    DivMod2 (Takes in R0 as Numerator and R1 as Denominator; Returns REMAINDER OF INTEGER DIVISION (23/4 = 5 r 3 to R0): 0x1E4684
  11. FBI
    October 3rd, 2015 4:49 PM
    Hey, I saw your comment on the video. No idea people watched those when I'm not posting them, I'm glad you like 'em :)
  12. FBI
    October 1st, 2015 6:07 AM
    No, I recommend you not use it. It would break compatibility with all the routines you've mentioned, because it is assumed the data is Dynamic. You don't really need to remove the moving nature of the data anyways, since it's very simple to write some ASM to copy it anyways.

    About your previous question, the walking healing thing, sorry I have been too lazy to actually insert it. One of these days!
  13. NewDenverCity
    September 24th, 2015 6:00 PM
    Yep! Each time you check the routine it'll write the correct entry for you, all you have to do is know which daily event is which.
  14. NewDenverCity
    September 24th, 2015 5:28 PM
    The daily event routine stores a table to the IRAM, where each entry is four bytes long. They contain the date that the specific entry was checked last. So don't worry about coinciding data between entries. Each time you use that asm, you'll replace that entry with the current date(according to your computer).

    Either way, if you set var x800D to 1, that'd be the second entry(the first one is 0), and then 2 is the third, and so on and so forth. They won't overwrite each other.

    Here's an example:
    #dynamic 0x800000

    #org @start
    setvar 0x800D 0x1 (this decides which table entry I want)
    callasm 0x8(offset where you put my code +1)
    compare 0x800D 0x0
    if 0x1 goto @visitedtoday
    compare 0x800D 0x1
    if 0x1 goto @notvisitedtoday
    #org @visitedtoday
    msgbox @sorry 0x6

    #org @notvisitedtoday
    msgbox @hello 0x6
    giveitem 0x8B 0x1 0x6
    msgbox @comebackagain 0x6

    #org @sorry
    = Sorry, I already gave you\n what I found today.\pCome back soon!

    #org @hello
    = Hey there! I pick up items\nI find in the woods.\pHere, you can have this.

    #org @comebackagain
    = I'll probably find something\ntomorrow, so see me then.
    Hope this helps! If anything is confusing, you can just use this again and I'll answer when I can. c:
  15. FBI
    September 20th, 2015 4:54 AM
    Hello, no it can't (well yes it can but you'd need to modify it a lot more). I'll consider upgrading it in the future, currently it's rather limited and only did what I needed it to do :/

About Me

  • About BlackWhiteRobin
    Quick Self-Introduction
    Male ♂
    Favorite Pokémon
    Emboar, Fennekin, Pikachu & other Starters and legendaries.
  • Signature


Total Posts
Activity by Forum
Visitor Messages
General Information
  • Last Activity: 5 Hours Ago 9:47 PM
  • Join Date: September 3rd, 2012
  • Referrals: 0


Showing Friends 1 to 17 of 17

  All times are GMT -8. The time now is 3:39 AM.

Contact Us Archive Privacy Statement Terms of Service Top