• 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.

[EM] Battle Engine Upgrade (On Halt, Will undergo reboot!)

Status
Not open for further replies.
55
Posts
14
Years
    • Seen Feb 1, 2023
    Sure. I would've done it earlier but there was no one that could test them. :P
    So I assume you own either mac or linux and the scripts don't work for you? And you already figured out the necessary changes? I'm all ears. :)

    Yeah, I'm currently on a Mac. They work ok, in my limited use so far, but I had to set the path to devkitPro manually and tweak a few things. The thing is, I don't know if the actual compilation will work. The devkitPro Getting Started page doesn't go over what is needed for the GBA; it stops after NDS (which I assume is not required here so I haven't fully installed all of it).

    If anyone knows the additional files I'd need for devkitPro (other than devkitARM_*.tar.bz2) -- maybe other tarballs get downloaded via the Windows installer? -- that would be really helpful :)

    Edit:
    Dizzy, got the scripts working. C/asm code also compiles and links properly, but idk if it's getting inserted properly. On that note: do you or KDS have any kind of unit tests available? :P For example, a patch or savefile with pkmn already on my team so I (or anyone else) could quickly verify it's inserting properly. Just an idea.
     
    Last edited:
    794
    Posts
    10
    Years
  • Yeah, I'm currently on a Mac. They work ok, in my limited use so far, but I had to set the path to devkitPro manually and tweak a few things. The thing is, I don't know if the actual compilation will work. The devkitPro Getting Started page doesn't go over what is needed for the GBA; it stops after NDS (which I assume is not required here so I haven't fully installed all of it).

    If anyone knows the additional files I'd need for devkitPro (other than devkitARM_*.tar.bz2) -- maybe other tarballs get downloaded via the Windows installer? -- that would be really helpful :)

    Edit:
    Dizzy, got the scripts working. C/asm code also compiles and links properly, but idk if it's getting inserted properly. On that note: do you or KDS have any kind of unit tests available? :P For example, a patch or savefile with pkmn already on my team so I (or anyone else) could quickly verify it's inserting properly. Just an idea.

    Test first battle with a wild Zigzagoon. If moves have a physical/special icon, Tackle deals 50 damage and the battle goes fine, everything should work.
     

    Skystrike

    [i]As old as time itself.[/i]
    1,641
    Posts
    15
    Years
  • If I want to update the code, it's okay to overwrite the old code with the new, right?

    Probably a stupid question, but I want to make sure I don't break anything.
     
    794
    Posts
    10
    Years
  • If I want to update the code, it's okay to overwrite the old code with the new, right?

    Probably a stupid question, but I want to make sure I don't break anything.

    Of course.

    Just make sure if you won't overwrite some data. For example you inserted the engine at 0xF00000 and it ended at 0xF40000 and put some scripts at 0xF40000. If the update added new things its size could get bigger, so if you'd try to insert t at 0xF00000 again it would overwrite the scripts you added before. A solution to this would be reserving 0x10000 bytes for said updates.

    Hope you understood what I meant. {XD}
     
    55
    Posts
    14
    Years
    • Seen Feb 1, 2023
    Test first battle with a wild Zigzagoon. If moves have a physical/special icon, Tackle deals 50 damage and the battle goes fine, everything should work.

    Thanks! Will try that.

    So... I was mistaken. I was working on the build.py file for your Various Em Features, and that's inserting correctly. The python changes are the same, so I copied them over to the engine build script and it works... but it never confirms that anything was inserted into the ROM (whereas VEF does). There are build warnings with the asm code, and I'm not sure if that's the reason. I'll go ahead and test drive the modified ROM anyway.

    Edit:
    Forgot about the insert.py script for this project. Thought the process was the same as the Various Em Features project :P
     
    Last edited:
    794
    Posts
    10
    Years
  • Thanks! Will try that.

    So... I was mistaken. I was working on the build.py file for your Various Em Features, and that's inserting correctly. The python changes are the same, so I copied it over to the engine build script and it works... but it never confirms that anything was inserted into the ROM (whereas VEF does). There are build warnings with the asm code, and I'm not sure if that's the reason. I'll go ahead and test drive the modified ROM anyway.

    You shouldn't switch build.py files between projects. The one in the VEF vastly differs from the one here, so please use the build.py and insert.py provided in this project. :P
     
    55
    Posts
    14
    Years
    • Seen Feb 1, 2023
    You shouldn't switch build.py files between projects. The one in the VEF vastly differs from the one here, so please use the build.py and insert.py provided in this project. :P

    I reread my post (before seeing yours) and realized it wasn't clear on that. I only copied the changes I made to the VEF build file. The only thing that changes is the way it finds the devkitPro folder.

    When I run insert.py, there's no confirmation that it was inserted properly, but I get no errors and test.gba has appeared in my folder. Does this sound right? I'm working on verifying that everything is inserted correctly, but VBA for mac is broken right now and I'm also trying to fix that haha

    Edit:
    Test first battle with a wild Zigzagoon. If moves have a physical/special icon, Tackle deals 50 damage, and the battle goes fine, everything should work.

    Got VBA working. Tested on the first battle and things seem to be working great!
     
    Last edited:

    ThatNihha

    Banned
    6
    Posts
    7
    Years
    • Seen Feb 6, 2017
    Is this still being ported to FireRed or was that person predictably lying for attention?
     

    BluRose

    blu rass
    811
    Posts
    10
    Years
  • Is this still being ported to FireRed or was that person predictably lying for attention?
    neither. was being ported and was incomplete and will likely remain so for some time.
    various features/routines are present in emerald which are simply not in fire red.
    porting of the routines not present is likely necessary to maintain a complete port, which has yet to be done simply because only esipode has looked into it, which he promptly gave up on doing anyways because of probable inability at the time.
    i would like to do the same sometime in the future, but as of the moment, this is regarded as relatively incomplete (iirc) and more efforts will be put into porting once a relatively bugless version is present (granted i don't hack emerald and have never tried this upgrade previously, so i wouldn't know certainly its state of completion nor its bugs)
     
    794
    Posts
    10
    Years
  • i would like to do the same sometime in the future, but as of the moment, this is regarded as relatively incomplete (iirc) and more efforts will be put into porting once a relatively bugless version is present (granted i don't hack emerald and have never tried this upgrade previously, so i wouldn't know certainly its state of completion nor its bugs)

    Please don't go around spreading such harsh statements. This engine has all moves, abilities and item effects from GenIV - GenVI working exactly the same as in the newer games. The only thing missing is some moves' animations. Not to mention you've got several other features like double wild battles.
    The engine is also thought to be free of bugs. Thought. I have not encountered any oddities and neither did anyone who used it. I'm sure there are some as there were in the past, but me and KDS fix them relatively quick, it's just a matter of finding them. :)
     
    55
    Posts
    14
    Years
    • Seen Feb 1, 2023
    ... This engine has all moves, abilities and item effects from GenIV - GenVI working exactly the same as in the newer games. ... The engine is also thought to be free of bugs. Thought. I have not encountered any oddities and neither did anyone who used it. I'm sure there are some as there were in the past, but me and KDS fix them relatively quick, it's just a matter of finding them. :)

    I think I may have found a bug in the engine. In LC's Pokémon Theta Emerald EX, the Exp. Share behaves oddly. When it's in the bag, all pkmn get exp (I think they might all get 50%, but I don't know how it's supposed to work). When I give it to a pkmn, though, I'd expect it to work as it normally would in Gen III, but it doesn't. I think the pkmn holding it gets 75% exp and the other gets 25% (assuming only 1 pkmn was used and it wasn't the one holding Exp. Share). Allowing Exp. Share to work like Gen III is a great feature, by the way; it's too op in the new gens anyway.
     
    794
    Posts
    10
    Years
  • I think I may have found a bug in the engine. In LC's Pokémon Theta Emerald EX, the Exp. Share behaves oddly. When it's in the bag, all pkmn get exp (I think they might all get 50%, but I don't know how it's supposed to work). When I give it to a pkmn, though, I'd expect it to work as it normally would in Gen III, but it doesn't. I think the pkmn holding it gets 75% exp and the other gets 25% (assuming only 1 pkmn was used and it wasn't the one holding Exp. Share). Allowing Exp. Share to work like Gen III is a great feature, by the way; it's too op in the new gens anyway.

    Why are you bringing up theta emerald? LCC tampered with the exp giving function himself which resulted in the oddities you mentioned. It's not related to the engine in any way.
     
    55
    Posts
    14
    Years
    • Seen Feb 1, 2023
    Why are you bringing up theta emerald? LCC tampered with the exp giving function himself which resulted in the oddities you mentioned. It's not related to the engine in any way.

    Touché. I brought it up 'cause I knew he used the Engine and I knew Engine Upgrade changes Exp. Share to behave like it does in the new gens. I didn't know he modified the exp functions. My bad :P

    You seem defensive... I wasn't trying to attack you/the Engine in any way--just wanted to report a bug I'm finding, which turns out wasn't caused by the engine in the first place. Sorry about that. It seems great otherwise!
     
    794
    Posts
    10
    Years
  • Touché. I brought it up 'cause I knew he used the Engine and I knew Engine Upgrade changes Exp. Share to behave like it does in the new gens. I didn't know he modified the exp functions. My bad :P

    You seem defensive... I wasn't trying to attack you/the Engine in any way--just wanted to report a bug I'm finding, which turns out wasn't caused by the engine in the first place. Sorry about that. It seems great otherwise!

    The bug with exp share was here since he modified the function some time ago which had been BEFORE I added it. Those two are not related.
    Am not really defensive, just don't want to be responsible for someone's else stuff. :P
     

    LCCoolJ95

    Limited Capacity
    638
    Posts
    14
    Years
  • ...uh, what did you do to the Exp. Share? I mean, it's great that there's a better one, but what happened to it? It's not working as intended, even though GENVI_EXPSHARE is set to true. I also see EXPSHARE_FLAG 0x900 and DISABLED_EXP_FLAG 0x0. Do I have to change them? And if so, where do you activate them, or place them, within the game for it to actually work?
     
    794
    Posts
    10
    Years
  • ...uh, what did you do to the Exp. Share? I mean, it's great that there's a better one, but what happened to it? It's not working as intended, even though GENVI_EXPSHARE is set to true. I also see EXPSHARE_FLAG 0x900 and DISABLED_EXP_FLAG 0x0. Do I have to change them? And if so, where do you activate them, or place them, within the game for it to actually work?

    You need to have exp share in your bag. The EXPSHARE_FLAG is a flag that must be set for it to work too. The choice which flag to use is left to a hacker.
    Same with DISABLED_EXP_FLAG. If it's set, the exp is temporally disabled.
     

    LCCoolJ95

    Limited Capacity
    638
    Posts
    14
    Years
  • Dude, it's in my bag, and it doesn't work. What should I change with the other two variables then? Change EXPSHARE_FLAG 0x900 and DISABLED_EXP_FLAG 0x0 to what, and where do they go?
     
    794
    Posts
    10
    Years
  • Dude, it's in my bag, and it doesn't work. What should I change with the other two variables then? Change EXPSHARE_FLAG 0x900 and DISABLED_EXP_FLAG 0x0 to what, and where do they go?


    I told you this already. Change them to whatever flags you want. Just have the EXPSHARE_FLAG one set.
     

    Gamer2020

    Accept no Imitations!
    1,062
    Posts
    15
    Years
  • They're already set though, I left them as 0x900 and 0x0. What else can I change them to then if those aren't working...this is so freaking complicated.

    You change EXPSHARE_FLAG and DISABLED_EXP_FLAG to whatever flags you want to use. Then you have to set those flags if you want to enable them. You can do so in a script by using "setflag 0x900" for example. For help with scripting here is an excellent tutorial you can read: https://www.pokecommunity.com/showthread.php?t=164276
     
    Status
    Not open for further replies.
    Back
    Top