HomeGBA › Pokemon Modern Emerald
GBA · Pokémon Emerald · July 2025 build · by resetes12

Pokemon Modern Emerald

66areas426Pokémon61bosses528trainers
What makes it different

Stock Hoenn rebuilt for speed and choice: double-speed battles, following Pokemon, an expanded roster with its own night-exclusive spawns, and a start-of-game menu that turns on whichever quality-of-life and difficulty options you actually want.

More about the game

Modern Emerald is resetes12's decomp rebuild of Pokemon Emerald, and by the numbers it stays remarkably close to the original: the same routes numbered 101-134, the same eight Gym Leaders and Elite Four, the same trainer classes, in the same places. What it changes is everything about how the game plays and what you can catch. A start-of-game menu turns on modern battle mechanics (the physical/special split, Fairy typing, double-speed battles), an expanded roster of 423 Pokemon including official Gen IV species newly obtainable in Hoenn, a real day/night cycle with night-exclusive wild spawns, following Pokemon, and separate Easy/Normal/Hard difficulty settings that nudge wild and trainer levels by a small badge-gated amount. A handful of new legendary encounters — three more Regis, and Kanto's starter fossils — are tucked into existing routes and caves rather than new areas.

What's different, point by point

  • 423 obtainable Pokemon: the original 386 plus 37 official Gen IV species and 3 from later generations, newly available in Hoenn
  • A real day/night cycle — night-exclusive and higher-rate wild spawns under the Modern Spawns option, on top of the vanilla-style tables
  • Optional modern mechanics: physical/special split, Fairy typing, double-speed and faster-paced battles, Gen VI EXP Share
  • Optional Better Stats / Modern Typings / Legendary Abilities toggles rebalance about a fifth of the roster; all off by default (see notes.stat_toggles)
  • Following Pokemon, with an option for oversized followers
  • Easy / Normal / Hard difficulty, each nudging wild and trainer levels by a small badge-gated amount (see notes.difficulty)
  • A modernised Battle Frontier, Battle Tents and Trainer Hill
  • Two new evolution methods (morning-only, gender-locked) alongside the vanilla evolution set
  • A large randomizer and Nuzlocke option set, off by default
Everything it changes →
Made by

resetes12

This guide is built from resetes12's own documentation. The game, the ideas and the work are theirs — the site just makes the numbers searchable. Play it from the official page, and send them the feedback and the thanks.

What this guide covers

Every guide here is built from the game's own documentation. Where a ROM hack changed something but never published the numbers, this says so rather than quietly filling the gap with the original game's — which would be worse than leaving it out.

SectionSource
Wild Pokémon by areaFrom the game itselfEvery wild table in this source is published, split into Classic and Modern Spawns and by day/night only where the hack's own data differs between them.
Encounter ratesFrom the game itselfSlot percentages are the hack's own encounter_rates arrays in wild_encounters.json, unchanged from vanilla Emerald's own rates.
Wild levelsFrom the game itselfLevels are read straight from wild_encounters.json and are real — ChooseWildMonLevel() in wild_encounter.c uses them — but Hard mode adds a small badge-gated bonus on top (see notes.difficulty) that isn't recomputed per table here.
Stats, abilities and movesetsFrom the game itselfBase stats, types, abilities, level-up moves, egg moves, tutor moves and evolution methods are all read from this hack's own species_info.h and related tables, using the values a fresh save actually plays with before any optional stat/type/ability toggle is turned on — see notes.stat_toggles. The 37 species added past Deoxys on the national dex show no Pokedex number — see notes.new_species.
TM and HM compatibilityFrom the game itselfThis hack keeps Emerald's original 50 TMs and 8 HMs; compatibility is read from every species' own tmhm_learnsets.h entry.
Where TMs are foundFrom the game itselfTM/HM and rod locations are read from every map's own scripts.inc (giveitem/finditem/pokemart). 12 of 58 TM/HM slots weren't found placed on any map script in this source — those rows say so rather than guessing a shop or route.
Trainer and boss teamsFrom the game itself528 trainer fights are published, all read from trainers.h/trainer_parties.h and placed by their own map script. 812 of 1026 Pokemon across those fights use the hack's default-moveset party type, which the source computes live rather than storing — see notes.trainer_moves; Battle Frontier facility opponents are excluded because their teams are assembled at random each run, not fixed rosters.

Credits

Reading the tables

SpawnsModern Spawns is an option, not something you unlock — it can be turned on or off from the start of the game. This guide shows both: an encounter table with no mode tag is the same in either setting, and one tagged Classic or Modern Spawns only appears under that option.

Day_NightDay is 6 AM to 8 PM, Night is 8 PM to 6 AM (the game's own clock, real-time or a simulated one-hour-per-day RTC by another option). Only tables where the source's own data actually differs between them carry a "(day)"/"(night)" label; an unlabelled table is the same at every hour.

DifficultyEasy, Normal and Hard are chosen at the start of the game and can be changed any time from the options menu. The levels in this guide are exactly what the source stores — which is what Normal actually plays at, since GetScaledLevel() in battle_setup.c leaves a trainer's level unchanged on Normal. On Hard it adds, and on Easy it subtracts, a small bonus that grows with your badge count: +/-1 with no badges, +/-2 with at least one, +/-3 at three or more, +/-6 at six or more, and +/-10 once you're the Champion (postgame rematches clamp a little lower still at high badge counts). Wild Pokemon get the same Hard-mode badge bonus in ChooseWildMonLevel(), but no Easy-mode reduction — that asymmetry is in the source, not an omission here.

Trainer_MovesMost of this hack's trainers keep Emerald's own party data, which only stores species, level and held item — the game computes that Pokemon's moveset live from its level-up learnset when the fight starts, the same as a wild Pokemon's default moves. Those trainers show no moves list here rather than a guessed one. A trainer with a fixed, hand-written moveset (most Gym Leaders, Elite Four, rivals and other bosses) shows its real four moves.

AbilitiesTrainer Pokemon abilities aren't stored per trainer in this hack — the game derives one from the Pokemon's own personality value at battle start, the same as a wild encounter. This guide doesn't print a guessed ability for a trainer's Pokemon; see that species' own page for its possible abilities.

Stat_Toggles"Better Stats", "Modern Typings", "Add Fairy Type" and "Legendary Abilities" are start-of-game toggles, all off by default (TX_MODE_NEW_STATS / MODERN_TYPES / FAIRY_TYPES / LEGENDARY_ABILITIES all default to 0 in the source). Off, the game reads a species' own stored "_old" stat/type/ability field wherever the hack defines one — GetTypeBySpecies() and GetAbilityBySpecies() in pokemon.c, and matching baseXXX_old checks in pokemon.c, battle_script_commands.c and pokedex_plus_hgss.c, all read that field only when the matching tx_Mode_* is 0. This guide's stats/types/abilities are that real off-by-default state — what a fresh save actually plays with — for the 63 species with a stat rebalance, 37 with a typing change and 10 legendaries whose ability reverts to Pressure; the optional buffed value is recorded on each of those species' own page instead of being shown as the default.

New_SpeciesThe 40 additional Pokemon this hack advertises are real, already-official species (Bonsly through Dudunsparce on the national dex, plus Chimecho, Ambipom and Arceus) made obtainable in Hoenn for the first time under Modern Spawns — not fan-made creations. None of Modern Emerald's own content uses a species outside the national dex. Their Pokedex numbers aren't shown on this guide's species pages: the hack's own pokedex.h only preserves real national dex order through Deoxys (#386), then assigns each added species a fresh slot of its own rather than its true number, and this guide won't substitute a number from outside the hack's own data.