Pokemon Battle Theater is an AI vs AI battle simulator for vanilla Pokemon Emerald. 120 trainers across every generation, in-ROM team builder, tournament mode, VGC mode with smart team-preview AI, Pilot Mode, and more. Pit any two trainers from the mainline games (Gens 1-9) against each other, or pilot one side via Pilot Mode.
Features
- 120 trainers across Kanto, Johto, Hoenn, Sinnoh, Unova, Kalos, Alola, Galar, Hisui + PWT + anime World Champion Ash
- 9 Legends Arceus trainers — Volo, Adaman, Irida, Ingo, Akari, Kamado, Zisu, Beni, Rei
- Tournament mode, 8 trainer single-elim brackets per region
- Best of N match format with adaptive picks between rounds
- VGC mode, forced doubles, Lv 50 cap, 4 pick of 6
- Team preview AI, scores each mon against the opponent’s whole roster and picks the optimal lineup (one of the coolest additions)
- Custom Trainer slots, full PKHeX style editor in-ROM (sprite / name / species / item / ability / EVs / IVs / moves / nature / gender / shiny) saved to your file
- Pilot Mode, control the player AI’s loaner team yourself
- Level cap (off / 50 / 75 / 100) for fair matchups
- Z-Moves / Mega / Dynamax / Gigantamax, AI bias tuned to fire signature attacks eagerly
- Custom Battle Theater background by LiYun
- Affection + Terastallization disabled for cleaner sim
Known Bugs
- Player trainer name sometimes renders with glitched / corrupted characters in battle dialogue.
- Trainer picker menu occasionally shows funky text on certain entries when scrolling. Closing and reopening the picker normalises it.
Changelog
V2.0.11
SV League Club Room
The full Blueberry Academy League Club Room roster joins the sim:
- Director Clavell — three starter-variant teams. His ace is whichever starter line counters the player’s pick: Skeledirge (vs Sprigatito), Quaquaval (vs Fuecoco), or Meowscarada (vs Quaxly).
- Miriam, the Instructor — Toxapex ace, Tera Poison.
- Arven — his story team, Mabosstiff ace with Tera Dark.
- Cyrano — founder of Blueberry Academy and the Indigo Disk secret boss. Zebstrika lead, Serperior ace with Tera Rock.
They live in the SV section of the picker (hold L/R to jump there) and are part of the SV tournament cup. Aces Terastallize.
Regional-form audit
Several existing SV trainers had a Pokémon carrying a form-exclusive ability or signature move while still set to its base form. Fixed:
- Tyme — Lycanroc is now Dusk Form (which also resolves an illegal Midday + Tough Claws pairing)
- Salvatore — Alolan Sandslash and Alolan Persian
- Grusha — Alolan Ninetales
- Jacq and Lacey — Galarian Slowbro
- Amarys — Alolan Dugtrio
Checked and confirmed correct as base forms: Salvatore’s Raichu, Jacq’s Arcanine, Raifort’s Zoroark, Saguaro’s Goodra, Crispin’s Exeggutor.
- Ash’s Gible added to his Full Team rotation pool.
V2.0.10
Anime trainers
A full anime section joins the roster
- Alain (XY) — his Mega Charizard X squad
- Ash, by region — Alola, Kalos, Sinnoh and Hoenn as fixed sixes; Unova (10-mon), Indigo (every Kanto + Johto mon he caught, 19), and Full Team (his complete 54-mon roster) as rotation pools that draw a fresh six each battle
- Ash’s Journeys World Champion team
- Paul (17-mon pool) and Gary (12-mon pool) — his Sinnoh and Kanto rivals
- Movesets and held items are canon to the anime. Pikachu always leads, and Ash’s regional aces (Charizard, Sceptile, Infernape, Krookodile, Greninja, Incineroar, Lucario) carry the Ace tag.
Ash-Greninja
- Ash’s Greninja now transforms into Ash-Greninja after its first KO — the Battle Bond bond-phenomenon from the anime — instead of the Gen 9 stat boost. (Only Ash’s Greninja uses Battle Bond, so nothing else is affected.)
Smart pool selection
- Rotation-pool trainers — Ash’s Full Team, Paul, Gary, and the Battle Tree / Frontier Brain pools — now bring a matchup-aware six: every mon in the pool is scored against your roster (type matchups both ways, speed, held item) and the best counters come out to play. Light per-mon randomization keeps the team varied battle-to-battle instead of repeating the same optimal six, and it no longer over-picks whichever mons happen to be listed first in a big pool.
Fixes
- Ash’s Indigo / Full Team pools can no longer field duplicate Pikachus (or any duplicate), and the rare out-of-bounds garbage Pokémon — the “shiny Lv 89 Alcremie” / INVALID MOVE blue screen — is fixed by a clamp + dedup guard on the final party.
V2.0.8
- Pilot Mode — when you pilot a pool trainer (Wally BT, Red BT, Cynthia BT, Noland Group 3, etc.), each battle now gives you a different clause-respecting sample from their pool. Previously the v2.0.7 matchup-aware picker emitted a deterministic counter-team to the pilot side; now we skip that pick for the side you’re controlling and let the random pool sampler run. The opponent side still gets the smart matchup picker.
- Build Trainer → Copy preset — each copy of a pool trainer’s team produces a fresh random sample. Hit copy on Wally BT a few times in different slots and you’ll get different rosters.
- Frontier Challenge loaner — borrowing a pool trainer’s team gives you a fresh sample on each Frontier entry.
Useful Links