The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > Bond697
Reload this Page Conversation Between Bond697 and sonic1
Sign Up Rules/FAQ Daily Battle Blogs Mark Forums Read


Conversation Between Bond697 and sonic1
Showing Visitor Messages 1 to 8 of 8
  1. sonic1
    April 14th, 2012 4: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 4: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 3: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 8: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 4: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 9: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 9: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 GMT -8. The time now is 7:24 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2016 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 - 2016 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.

Acknowledgements
Use of PokéCommunity Assets
vB Optimise by DragonByte Technologies Ltd © 2016.