• 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?".
  • Forum moderator applications are now open! Click here for details.
  • 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.

Patch: [EM] Safe, fast and dynamic Pokemon Expansion

Trainer 781

Guest
0
Posts
nNDKOeZ.png
0Iyjx63.png
FtyyxcD.png


Hello.
As you probably know, there is a tutorial on how to expand pokemon. I've recently made a post there that the byte changes done in steps 7-10 mess with data it shouldn't touch causing unexpected behavior(aka bugs). The method depicted there also allows to expand the dex to only 740 slots. So I decided to take matters into my hands and create a not-buggy and complete pokemon expansion.

As some of you know, I'm a C hacker using Python scripts to compile the code. It was not different this time, though there's one additional script for repointing tables. Link to code.

Download the repository and follow the instructions in the readme file. I've also provided a more detailed description to make sure everything's clear.

Info
Spoiler:

If you find a bug, please either report here or make an issue on GitHub. As I said at the beginning this is supposed to be free of any bugs.
 
Last edited by a moderator:

Lunos

Random Uruguayan User
3,108
Posts
15
Years
Holy mother of everything incluiding the existence itself!
I'M SO. GOING. TO MAKE. A PERSONAL. PATCH.
Thank you so much Dizzy, I'm gonna put it to test <3

EDIT: The readme inside the master folder is a mess though, copying and pasting the instructions written in the GitHub's repository main page is easier and looks perfectly fine, I'm assuming they're the exact same thing since overall they looked like it xD

EDIT2: Hey @DizzyEgg I forgot to ask, can I safely replace the 0xFA0000 in linker.ld with 0x118740 or expanded space could cause troubles later on? (I went Full Paranoic Mode and decided to expand and pick a random offset to avoid space problems, lol)
 
Last edited:

BluRose

blu rass
811
Posts
9
Years
*praying for moveset expansion*

nice job dizzy! always nice to see things from you tbh, it almost makes me think of the days where all we did was make a table for fbi's battle engine </3
 

Trainer 781

Guest
0
Posts
--super stiuff--.
Good job! Son, you made me proud!

*praying for moveset expansion*

nice job dizzy! always nice to see things from you tbh, it almost makes me think of the days where all we did was make a table for fbi's battle engine </3

Moveset expansion is already covered in the Emerald Battle Engine.
 
1,085
Posts
14
Years
  • Age 23
  • Seen Aug 26, 2023
Sweet! The thread's up. This expansion is so much reliable than the former one. No more unexpected faults and glitches ;)
 
3,830
Posts
14
Years
  • Age 26
  • OH
  • Seen Feb 26, 2024
Really great work! This is awesome and so much better than using an expander via a tool. Very well commented and super easy to use.
 

Lunos

Random Uruguayan User
3,108
Posts
15
Years
Hey DizzyEgg, gave it a try after my previous edit. I'm getting frozen during Birch's introduction.
I probably made some silly mistake when filling the diferent information in the files pointed at in the master folder's readme, so I'll leave in a spoiler all of that.

Spoiler:


After that I just did Steps 4 and 5 normally.

EDIT: Also tried replacing "0xFA0000" in the linker.ld for a "0x800000" and then executed the 3 commands again but didn't worked, got the same freeze, so it probably wasn't the ROM's size expansion fault.
 
Last edited:
794
Posts
10
Years
Set evos_per_entry to 5. I should have probably mentioned that this doesn't expand evolution slots, but correctly expands in case you had expanded before. So, if you have 5 slots, type 5.

Also, I've been trying to dumb down the process, so you don't have to change the defines in all files, but well it didn't exactly go as planned. :P
I'll try to get it done in a few days as well as provide an ini dumper for Pokemon Game Editor.
 

Lunos

Random Uruguayan User
3,108
Posts
15
Years
Set evos_per_entry to 5. I should have probably mentioned that this doesn't expand evolution slots, but correctly expands in case you had expanded before. So, if you have 5 slots, type 5.

Also, I've been trying to dumb down the process, so you don't have to change the defines in all files, but well it didn't exactly go as planned. :P
I'll try to get it done in a few days as well as provide an ini dumper for Pokemon Game Editor.

Done, now it doesn't freeze anymore :'D ... it just throws me a black screen whenever I want to browse through the Pokédex :P ... </3

EDIT: Oh, wait, are the expanded slots counted as Bulbasaurs by default? If not, that's probably it.
I'll give it a try once the PGE INI Dumper is done xD
 
Last edited:
794
Posts
10
Years
Done, now it doesn't freeze anymore :'D ... it just throws me a black screen whenever I want to browse through the Pokédex :P ... </3

EDIT: Oh, wait, are the expanded slots counted as Bulbasaurs by default? If not, that's probably it.
I'll give it a try once the PGE INI Dumper is done xD

Probably inserted the code in a location that overwrote something. Anyway, I'll soon simplify the process, so it will be easier to insert it. All expanded slots have same data of second pokemon that happens to be Bulbasaur, if that's what you meant.
 
794
Posts
10
Years
A little update.
Now you can just edit the expansion.py file and it will do all the work for you. If there are problems however, you can still do it all manually.
Also, dex search tables get repointed and you can change the amount of pokemon in the regional hoenn dex.
 

Marky Vigoroth

...I just liked the Skarmory icon.
171
Posts
8
Years
...how do I use this after your Pokémon Engine? I used your engine; the resultant ROM worked fine, but using this on the resultant ROM (even after pointing to blank space) would only lead to a blank, soundless screen after the copyright dates.
 
794
Posts
10
Years
...how do I use this after your Pokémon Engine? I used your engine; the resultant ROM worked fine, but using this on the resultant ROM (even after pointing to blank space) would only lead to a blank, soundless screen after the copyright dates.

I'm not really sure why that would happen. Script sure automatically find free space, so it shouldn't be an issue. Try deleting the .sav file. If it still doesn't work, try applying it to a clean rom. If clean rom also doesn't work, it means you incorrectly modified the expansion.py file.
 

Marky Vigoroth

...I just liked the Skarmory icon.
171
Posts
8
Years
I'm not really sure why that would happen. Script sure automatically find free space, so it shouldn't be an issue. Try deleting the .sav file. If it still doesn't work, try applying it to a clean rom. If clean rom also doesn't work, it means you incorrectly modified the expansion.py file.
...even after a clean ROM (and fresh install), I still got the black screen. All the changes I did were these:

new_pokes = 114 + 441 #X is the number of pokemon you're adding, ignore that 441, it's for all limbo slots; say you want to include gen 4, 5 and 6 that gives 335
dex_pokes = 500 #amount of pokes you want to have in national dex; max you can currently go is 999
 
794
Posts
10
Years
...even after a clean ROM (and fresh install), I still got the black screen. All the changes I did were these:

That's very strange. Make sure you've got the latest version, so check Github and download it. Your python file should look like this:
http://hastebin.com/keranizojo.py
I tested it and it works fine. The last time I've seen someone get a black screen was when he made the evos_per_entry equal to 8, not 5.

Oh, wait, are the expanded slots counted as Bulbasaurs by default? If not, that's probably it.
I'll give it a try once the PGE INI Dumper is done xD

Good news everyone. Gamer2020 made his ini creator tool. All you have to do after the expansion is open the Pgeinicreator.exe and all offsets will get updated, so you can use PGE with your new expanded rom.
 

Marky Vigoroth

...I just liked the Skarmory icon.
171
Posts
8
Years
I got the latest version; I used both the latest expansion.py and had the python file similar to keranizojo.py.
I still get that black screen.
 
794
Posts
10
Years
I got the latest version; I used both the latest expansion.py and had the python file similar to keranizojo.py.
I still get that black screen.

Alright, the reason was because I wast testing it on a rom with a save file and now that I checked again, you were right. On a rom with no save file, this indeed did happen(infinite loops yay).
Sorry for the inconvenience. I updated the github and it should all work fine.
 

im_mega

Some guy on the internet.
28
Posts
9
Years
  • Age 22
  • Seen Jul 30, 2023
Is there any way for me save all the offset changes into an ini for use with G3T? (also using your Battle Engine.)
 
794
Posts
10
Years
Is there any way for me save all the offset changes into an ini for use with G3T? (also using your Battle Engine.)

You're asking if there's a tool that updates the G3T's ini? If so, then no. You'll have to make those changes yourself, but it shouldn't take long as G3T uses dynamic offsets, so you'll only need to change number of pokemon and such.
 
Back
Top