Go Back   The PokéCommunity Forums > SBird
Reload this Page Conversation Between SBird and Caneverbe

Notices
For all updates, view the main page.



Conversation Between SBird and Caneverbe
Showing Visitor Messages 1 to 2 of 2
  1. SBird
    March 8th, 2014 02:53 PM
    SBird
    Yeah the save block hack works just fine for me, I did not do massive testing but it's currently implemented in my Romhack and conserves some flags / variables. You just have to port it to emerald(U) since im a german hacker and change the memory adresses to point to 0x0203D000 instead of ...C000. Otherwise, you will run into issues with the pokédex, I did now point the Unknowns to after my new mons, so that worked, and filled the 28 slots with 00s, that worked, but the Emerald dex uses variables to determine the scrolling speed, etc. and this is currently conflicting with my entries, which makes them... weird. Once I fixed that I will be done, I hope...
  2. Caneverbe
    March 8th, 2014 04:46 AM
    Caneverbe
    Quote originally posted by SBird:
    Okay okay okay, I state this again: I did most of the research for emerald, I am also willing to post the data for it, actually I already posted my ported version of JPANs Save Block Recycle Hack somewhere in RD, for the german version of emerald I guess, it can be ported easily. I also repointed all of the required tables, for emerald you have to do some additional work, which would be: The second sprite table, containing all of the animated sprites(I don't know if the other one is even used, since there is only one pointer to it it could very well be deadcode); And the sprite animation table(The movements pokémon do when they are summoned) You can find the information in a common editors ini file or research them yourself. Also, there are several versions of malloc and free, whereas we are only interested in malloc. In emerald they use a version of it which instantly cleans up the memory space it provides you. It is locaded at: 0x08000b4c, I guess this is global for all of the roms, since those header adresses are compiled instantly. There is also an ldr instruction which is allocating the memory for emerald: 0x080BB65A (BPED, german), however afterwards follow a few routines which load global pokédex variables in a form of "ldr malloced_base + 0x6XX" and if you have too many Pokémon you will overwrite those and run into severe problems. Therefore you have to relocate them, as for me I wrote a quick tool to do that, just search for 4-aligned words in an area which I guess contains all of the routines and adding a static value to them. That for the memory in emerald...

    There is also a very similar limiting thingie in emerald, a simple bhi instruction you can just bypass with 0x0000; It was posted for BPEE somewhere already, for BPED its 0x0806D430. Now for the interesting part, I have no clue what to do about the amount of pokémon that is loaded into the dex, there is something at 0x080BC94A, which loads a global variable onto the stack, using mov and lsl, if you do change that it will load more pokémon, you also have to change some statics like in Firered, but I don't know exactly which ones and as I said above between Deoxys and 412d there is weird data loaded into my dex... Thats the problem I am facing currently, concerning emerald, the rest can be done "fairly" easily.

    Did someone look at my national order table and can tell me if it's correct or how it has to look like? I am kind of sure this is not the problem, but anyways, it is somehow strange, you know.

    ~SBird

    Edit: The save block thingie: http://www.pokecommunity.com/showthread.php?t=306202 You can probably easily port it to BPEE, but you want to use different adresses, I recommend 0x0203d000 ff; Also if we discuss on emerald for longer(which I would be interested in, should'nt we go to RD? Just asking.

    Yes, definitely no problem with that, but why don't just fill it with 0000 will make it better.
    If u still see missing no flying around in the pokedex, that might be totally another different story.
    pokedex limiter for emerald(U) (fill with 0000)
    0x6d3e0
    0x6d42c
    0x6d478

    Now, let me ask you, is the save block ported perfectly to emerald with bug free?Yes that really what I need......
    what I left and research that needed to do:
    1.save block recycle
    2.Show every pokemon in dex.
    3.repoint the see/caught flag.
    4.some misc fixing
    5.fixing the champion saving error(pretty weird, I have no idea why it comes up error)
    6.egg move limiter
    7.cry limiter

    For some reason, I don't like to post in others' toturial, that why I VM you.

All times are UTC -8. The time now is 02:38 PM.