Skip to content
Snaid1 edited this page Feb 8, 2023 · 2 revisions

This page is a work in progress and is not currently being actively maintained. See discussion here: https://discord.com/channels/442462691542695948/1028919070839537684

Introduction

This is a collection of handy modifications for pokeemerald. Modifications tend to range in both size and scope and cover all different facets of the games. The goal of this collection is to share resources among all fan-game developers while also showcasing to newer developers the ease and benefits of switching to decompilation-based projects.

This is intended to be a more sustainable version of the indexes that Avara and Anon822 maintained. Thank you both for all of your hard work!

Before Submitting

  1. PLEASE make sure your implementation works in an unchanged/vanilla version of the game.
  2. PLEASE try formatting your tutorial for ease of reading. An excellent format to follow can be seen in Rangi's Adding a Pokémon Type & Disabling the Mystery Type.
  3. Choose a place to submit your tutorial. Github is preferred, but if you can't use GitHub, you can create a new post in this thread.

After Submitting

  1. Please add your tutorial to the table. (Or ask somebody who can, like psf on PokéCommunity, or members of #pokeemerald in pret.) Adding to the index will help other developers find it quickly and easily.
  2. Publicize your work! Post about it on reddit, Twitter, or discord communities like #pokeemerald in pret or #decomps-disassemblies in PokéCommunity. Spread the good word, & thanks for the contribution! ☺️

Tutorials / Modifications Index

Reading this list

Hovering your mouse over the title of or icons in each column will explain what each column/icon signifies. If a tutorial has [ALT] after it, that means there is more than one way to implement this feature, and another example has been provided.

Tutorial syntax

Tutorials may use diff syntax to show edits:

 this is some code
-delete red - lines
+add green + lines

List

Table of Contents

Bugs

Fixes a bug in Pokémon Emerald.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Example Table Row ⭐⭐⭐ 8 🐛 📋 🎒 📝 🌎 🎨 💻
Faster HP Drain 5 🐛 📋       🎨  
Make space for EWRAM Data for Summary screen   🐛 📋           💻
Not showing dex entries until getting the Pokédex   🐛 📋            
Wrong Save Type Error Screen   🐛 📋            
Implement Missing Text Function RESET_SIZE   🐛     📝 🌎      
Surf Dismount Ground Effects   🐛       🌎 🎨    
Fix Snow Weather   🐛       🌎 🎨    
Keep the Camera from Making Waves   🐛       🌎 🎨    
Better Reflection System   🐛       🌎 🎨    
Snow Weather Fix   🐛       🌎 🎨    
[Pokefirered] Snow Weather fix ported   🐛       🌎 🎨    
Force load offscreen object events with a flag   🐛       🌎 🎨    
Fix critical bug with wild land Pokemon encounter ratio   🐛       🌎    
Restoring the Shred Split Battle Transition   🐛         🎨  
Improve the Loading of Battle Terrain ⭐⭐   🐛         🎨  
Improving the WaitForVBlank function   🐛         🎨   💻
Fixing Battle Factory opponent IV Glitch   🐛            
Seeding the RNG properly on startup   🐛             💻
⬆️

UI

User interface of the game, such as menus, dropdowns, options, selections, etc.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Debug Menu     📋 🎒 📝 🌎    
Register items in a list menu!     📋 🎒   🌎 🎨    
Shop Items by Badge Count 4   📋 🎒   🌎      
Prompt for reusing Repels [ALT] 5   📋 🎒   🌎      
Make Poké Balls usable outside of battles     📋 🎒     🎨    
Change bag sound with the ones from FR     📋 🎒     🎨    
TM Case ported from FR and custom one!     📋 🎒     🎨    
Make reusable TMs unsellable 5   📋 🎒        
Repeated Medicine Use ⭐⭐ 7   📋 🎒        
Nature Mints 8   📋 🎒        
[Pokéfirered] Remove FRLG item use animation screen 1   📋 🎒          
Remove the extra save confirmation 5   📋 🎒          
Shops with Single Items to Buy ⭐⭐ 5   📋 🎒          
Move Item [ALT] 7   📋 🎒          
Bag Sorting     📋 🎒          
[Pokefirered] Bag Sort Ported     📋 🎒          
Special that lets the Player choose an item from the bag     📋 🎒          
Coin Pokémarts ⭐⭐     📋 🎒          
[pokefirered] Skip Controls Intro, First Battle Tutorial, Viridian Old Man, Flashbacks     📋   📝 🌎    
Increase Text Speed Beyond Fast     📋   📝   🎨    
Use Fly/Flash from party menu if Pokémon is compatible     📋   📝        
Allow specifying multi-choice options in scripts ⭐⭐     📋   📝        
Multichoice2 - Improved Multichoice Command ⭐⭐     📋   📝        
Simplistic Battle Intro     📋     🌎 🎨  
Gender-based Field Textboxes     📋     🌎 🎨    
Remove Map Popups On Maps With The Same Map Section     📋     🌎 🎨    
Chain Fishing 6   📋     🌎    
Adding Multi-region Support     📋     🌎     💻
Pokémon Storage System in the Start Menu ⭐⭐ 7   📋     🌎      
Editing Default Options Settings     📋     🌎      
Scrolling Multichoice Boxes for Scripts CHECK UPDATE [ALT] ⭐⭐⭐     📋     🌎      
Disable Pokémon Animations 4   📋       🎨  
[Pokefirered] Nature Coloured Stats 4   📋       🎨  
Spinda Second Frame Spot Addition ⭐⭐ 4   📋       🎨  
[Pokefirered] IV Rankings On the Summary Screen 7   📋       🎨  
Improving the Pace of Battles     📋       🎨  
Hidden Power type in summary screen     📋       🎨  
Improved scrolling options menu with instant text, HP and EXP bar speeds and a metric unit option!     📋       🎨  
Colored stats by nature in summary screen 4   📋       🎨    
DS-Style Party Screens     📋       🎨    
Make text speed-up like holding the A/B buttons automatically     📋       🎨    
[pokefirered] Upper To Lowercase Swap When Naming     📋       🎨    
Make text autoscroll ⭐⭐     📋       🎨    
Adding New Menu/Text Border Themes ⭐⭐     📋       🎨    
Add a New Wallpaper to the Pokemon Storage Box ⭐⭐⭐     📋       🎨    
Add Physical Special Split ⭐⭐ 4   📋          
Physical Special Split Icons In Battle ⭐⭐⭐ 4   📋          
Adding a Pokémon Type & Disabling the Mystery Type 5   📋          
Adding the Fairy Type 6   📋          
Learn moves upon evolution ⭐⭐ 7   📋          
Remove Low Health Beeps     📋          
Show IVs/EVs in Summary Screen [ALT]     📋          
Modifying Starter Pokémon     📋          
Nicknaming Pokémon from the Party Menu     📋          
Make the game read the dynamic type of Hidden Power in battles     📋          
Have the game display Hidden Power's true base power (for pre - Gen VI power calculations)     📋          
Shortcut to run quickly from wild battles     📋          
Mid-battle Evolutions     📋          
Move Relearner as an option in the Pokémon Party Screen     📋          
Show Type Effectiveness In Battle ⭐⭐     📋          
Change the limbo slots' hardcoded Unown cry ⭐⭐     📋          
Change the Clock Time     📋           💻
Make the keyboard auto-switch to lowercase after the first character 4   📋            
Auto-switch to Lower Case in Naming Screen 4   📋            
Move Pokémon as first PSS option 6   📋            
Allow the player to nickname their Pokémon from the party menu 7   📋            
Swap party screen slots using Select 7   📋            
XY-style Wrapping Summary Screen     📋            
Remove Contest Moves Tab from Summary Screen     📋            
Start menu Page turning     📋            
Remove the functionally redundant move grammar tables     📋            
Editing the Save Screen ⭐⭐     📋            
Swapping Order of Genders in the Intro ⭐⭐     📋            
Preset Playable Character Name ⭐⭐     📋            
Emerald Style Gender Select Intro, in [FireRed] ⭐⭐     📋            
UI Helper ⭐⭐     📋            
⬆️

Item

Anything involving items.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Set Up Item Balls on a Map Without Needing New Scripts       🎒 📝 🌎      
Plural giveitem 4     🎒 📝 🌎      
DPPt 2-in-1 Bike & alternative [ALT] 4     🎒   🌎      
Proper Plural "giveitem" Command 4     🎒   🌎      
Faster Berry Interactions       🎒   🌎      
Surfboard [ALT]       🎒   🌎      
Modifying the Pickup Ability's Item Table       🎒   🌎      
Display Item Desciptions on First Obtain       🎒   🌎      
Register Items with L/R       🎒   🌎      
Checking Ash Collected in Soot Sack       🎒   🌎      
Remove the Need to Water Berries on Rainy Routes       🎒   🌎      
HM Items       🎒   🌎      
Headbutt in the overworld       🎒   🌎      
FRLG/DP+ White Out Money Calculation 3     🎒       💻
Update Sitrus Berry's effect to Gen 4 standard 4     🎒        
Gen IV+ White Out Money Calculation 4     🎒        
Gracidea Item 4     🎒        
Infinite TM usage 5     🎒        
Only Buy TMs & HMs Once 5     🎒        
Modifying TM & HM Moves       🎒        
Item field effect functions to increase/decrease Individual Values       🎒        
Disable Bag use In Battle       🎒        
Disable Catching Pokemon       🎒        
More Trainer Items ⭐⭐       🎒        
Shuckle makes Berry Juice 2     🎒          
Increase bag item capacity 4     🎒          
Changing the Money Limit 5     🎒          
[Pokefirered] Money Limit Ported 5     🎒          
LGPE-Style Bonus Premier Balls 8     🎒          
New PokéBalls with Unique Images       🎒          
Editing Player PC Items       🎒          
Changing the Beginning Amount of Money       🎒          
Feed any number of pokéblocks       🎒          
Change initial PC items       🎒          
⬆️

Scripting

Anything involving scripting.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Prevent Map Fade With A Flag         📝 🌎 🎨    
Global Field Tints         📝 🌎 🎨    
Display Mugshots in the Overworld ⭐⭐         📝 🌎 🎨    
Headbutt tree for Pokeemerald 2       📝 🌎    
Gen. 4 Styled Deoxys Form Change in the Overworld 4       📝 🌎    
Rotom Form Change in Overworld 4       📝 🌎    
Resume Game After Whiting Out (Scripted Loss)         📝 🌎    
Ability Tutor ⭐⭐         📝 🌎    
New Movement Actions [ALT]         📝 🌎      
Skipping the Poochyena Battle After Starter Choice         📝 🌎      
Move camera to a coordinates and return camera to the player specials         📝 🌎      
Get an event object's facing direction in an overworld script         📝 🌎      
Trigger Map Scripts By Flag         📝 🌎      
Change Object Event Movement Type in Real Time ⭐⭐⭐         📝 🌎      
Custom Battle Music Via Scripting (Emerald / Firered)         📝   🎨  
Earn battle points from trainer battles (with a variable)         📝   🎨  
Have Berry Trees No Longer Disappear 6       📝   🎨    
Implementing the “textcolor” script command from FRLG and give object events their own text colour ⭐⭐         📝   🎨    
IV Checker NPC         📝      
Setting EVs with Scripting Specials         📝      
In-game Trading with Self         📝      
Give Custom Mon         📝      
Preserve Trainer Party Order ⭐⭐         📝      
Wonder Trade 6       📝        
Get or Set a Pokémon's Seen/Caught flag from within a script         📝        
Check for a Specific Pokémon Species         📝        
Full National Dex         📝        
Use variables with setmonmove         📝        
Only change nicknames of self caught mons!         📝        
Text shortcut to print a Pokémon's nickname         📝        
Useful Scripting Specials+ [Pokefirered]         📝        
Useful scripting commands         📝        
Dynamic Trade Names         📝        
⬆️

Overworld

Anything involving the overworld.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Day/Night encounters ⭐⭐           🌎 🎨  
Overworld Expansion           🌎 🎨   💻
Dynamic overworld palette system ⭐⭐           🌎 🎨   💻
Stair Warps ⭐⭐           🌎 🎨   💻
Custom Border Dimensions ⭐⭐ 3         🌎 🎨    
Fog Blending           🌎 🎨    
Sideways Stairs           🌎 🎨    
Adding Footprints           🌎 🎨    
Remove Warp Fadescreen with a Flag [ALT]           🌎 🎨    
Spawn an invisible Player           🌎 🎨    
Adding new overworlds ⭐⭐           🌎 🎨    
Surviving Poison Outside of Battle with 1HP 4         🌎    
Implement a metatile behavior for Feebas encounters 6         🌎    
Let a Pokémon Forget Any Move 7         🌎    
Pokémon with Poison Heal Unaffected by Poison in the Overworld           🌎    
Changing encounter groups with map scripts           🌎    
Curve low-leveled wild Pokemon           🌎    
No Whiteout After Player Loss [ALT]           🌎    
Randomizing the Player's party's moves           🌎    
Speedy Pokecenter Healing           🌎    
Toggling Trainers "Seeing" You           🌎    
Deactivate Wild Encounters With A Flag ⭐⭐           🌎    
How to add a new ability ⭐⭐           🌎    
Disabling Union Room check when entering Pokémon Centers           🌎     💻
Add a debug menu           🌎     💻
Enable the Reset RTC Feature           🌎     💻
Triple-layer metatiles ⭐⭐           🌎     💻
Rival Nicknaming 1         🌎      
Allow running indoors 4         🌎      
Pokecenters disregard eggs 4         🌎      
Auto-Run 4         🌎      
[Pokefirered] Auto-Run Ported 4         🌎      
Removing Badge Checks for HMs 5         🌎      
Flying Taxis 8         🌎      
Fast Surfing           🌎      
Modifying the Start Location           🌎      
Force Set Player Gender           🌎      
Locktarget Scripting Command           🌎      
Rock Climb           🌎      
Grindrunning For Easier Diagonal Movement           🌎      
Auto-read signposts           🌎      
Allow player to change direction while moving           🌎      
Run Custom Scripts on Trainer Sight           🌎      
Omnidirectional Jump Behavior ⭐⭐           🌎      
⬆️

Graphics

Look, feel, or display of the game. Has no bearing aside from visuals.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Forcing Battle Anims for Major fights 1           🎨  
Trainer Class-Based Poké Balls 7           🎨  
Adding a New Trainer Class             🎨  
Battle music changes depending on the map the player is in             🎨  
Trainer Backsprite Editing ⭐⭐             🎨  
Editing Battle Backgrounds ⭐⭐             🎨  
Adding a New Trainer Image ⭐⭐             🎨  
Custom Battle Transition Mugshots ⭐⭐             🎨  
New Battle Transitions ⭐⭐             🎨  
De-linking Palette Sharing Between Player Back & Front Sprites             🎨   💻
Implementing ipatix's High Quality Audio Mixer ⭐⭐             🎨   💻
Changing Birch's Intro Pokémon             🎨    
Change the title screen music             🎨    
Remove the "Green Flash" screen of the opening's background when the pokemon logo appears             🎨    
Skipping the Rayquaza Intro             🎨    
Using Affine Animations ⭐⭐⭐             🎨    
⬆️

Battling

Anything involving battles, such as stats, attacks, encounters, etc.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Change Time-Based Evolution Times ⭐⭐⭐               💻
Remove badge boosts 4              
Set a Trainer's Pokémon's abilities 4              
Make eggs hatch at level 1 instead of 5 4              
Always inherit nature when holding an Everstone 4              
Destiny Knot IV Inheritance Implementation 4              
Power item and Destiny Knot breeding 4              
Inherit Nature when Holding an Everstone 5              
Gen 6-style Exp. Share 6              
Obtain exp. points per catch [EM/FR] 6              
Evolution moves [FireRed] 7              
Gen. 8 Synchronize 8              
Forced Battle Style                
Managing Trainer Rematches                
Switch If Specific Pokémon Has Specific Super Effective Revealed Move                
Prevent Roamers From Fleeing (Emerald / Firered)                
Set Trainer's Levels Dynamically                
Set Wild Pokémon's Levels Dynamically [ALT]                
Improving Switching AI                
Register pokémon you battle at the Battle Frontier in the Pokédex                
Create Pokémon with Three Perfect IVs                
Inherit moves from both parents                
pokeemerald: Perfect IVs while breeding                
[Firered] Remove the Low Health Beep                
REMOVING LEVEL FROM COMBAT STATISTICS EMERALD                
Create Shiny Pokemon with a Flag [ALT]                
Change Starter Pokémon                
Adding EVs to Trainers ⭐⭐                
Improved Editing Trainer Parties ⭐⭐                
Improving Switching AI #2 ⭐⭐                
How to Create a New Regular Trainer Battle ⭐⭐                
How to add a new Pokémon species ⭐⭐                
Smogon Stats ⭐⭐⭐                
⬆️

Code

GBA hardware or background functionality, such as RNG seeds or palette loading.

Title Difficulty Gen Bug UI Item Script OW Gfx Battle Code
Delete save file                 💻
Remove Pokemon Data Encryption                 💻
Saveblock Cleansing                 💻
[pokefirered] Remove redundant move grammar tables                 💻
[pokefirered] Native Real-Time Clock                 💻
Faster Soft Resets                 💻
Version Identification                 💻
Enable trade with FRLG without beating the game                 💻
Extra save space with two lines of code                 💻
Uniquely Shuffle Arrays ⭐⭐                 💻
Debugging using printf                 💻
⬆️