The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Bond697
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices


Conversation Between Bond697 and sonic1
Showing Visitor Messages 1 to 8 of 8
  1. sonic1
    April 14th, 2012 04:57 PM
    sonic1
    Well, many thanks, but i don't really like taking other's work. I prefer to find things my way, because i *need* to know/learn how to do things on my own. If someone gives me a full made thing, good, but that way i can't learn the techniques needed to do a similar thing.

    I really appreciate your kindness, thanks

  2. Bond697
    April 14th, 2012 04:34 PM
    Bond697
    i see you're making an emerald idb. do you want mine?

  3. Bond697
    March 18th, 2012 12:52 AM
    Bond697
    it doesn't have to be slower. copy that routine and put it into IWRAM(0x3000000 area) in an open spot and do it that way. IWRAM can handle 32-bit reads.

  4. sonic1
    March 17th, 2012 03:37 PM
    sonic1
    I see! Well, if im not mistaken, all ARM instructions (even bx) can be conditional, right? Can i use that routine and make a version of it, in ARM, for emerald? (i know that its going to be slower because of the 16bit bus, but would it be worth a shot, or not?

    About gen3, i hack it since 2007 xD Asm, though, only 2 years from now, and still have a lot to learn.

    Thanks for the response

  5. Bond697
    March 17th, 2012 08:33 AM
    Bond697
    think about this:

    the arm cpu doesn't do division, right? so.. if someone was to throw:

    u32 doDiv(u32 x, u32 y)
    {
    return (x/y);
    }

    at the cpu, what would it do? short answer: it would do what you're seeing in that routine, with a lot of wasted cycles. It's also in thumb, which means it's going to be even bulkier. same thing for the modulus routine right under it. they're huge.

    that's as opposed to the divmod in dppt, hgss, and bw that is done in arm, is very fast, and returns both the result and the remainder.

    http://pastebin.com/u9CG4VCZ

    basically, gamefreak could've done a lot better in that regard. the size and speed of the division and modulus routines in emerald are both good examples of why you shouldn't just use division in arm and should actively look for another way.

    e: dunno how much you know about pokemon generation in gen3, but stuff like this is what causes methods 2 and 4 to happen.

  6. sonic1
    March 17th, 2012 04:17 AM
    sonic1
    Ok, many thanks!
    But why is it a great example of why i shouldn't use it on an ARM cpu? (srry for bad english)

  7. Bond697
    March 16th, 2012 09:50 PM
    Bond697
    division: r0/r1, return the result in r0.

    e: unsigned division, and a great example of why you shouldn't use it on an ARM cpu.

  8. sonic1
    March 16th, 2012 09:33 AM
    sonic1
    Hey Bond! Hi! I saw in the notable breakpoints of project pokemon that you are the one who added most of the offsets.
    I came here to ask something to you, related to Pokemon Emerald (U).
    I know that the routine at 082E7B68 is a mathematical operation, but i can't guess what it is. Could you please enlighten me?

    Thanks :D


All times are UTC -8. The time now is 04:17 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.