BattleLens
New in 0.4 Redesigned card, new Settings and a user guide →

Know your opponent
before you make a move.

The moment a battle starts, BattleLens shows the opponent's types, weaknesses, stats, abilities and catch rate right next to your emulator. No alt-tabbing, no wiki, no guessing.

  • Free & open source
  • Works offline
  • No admin rights
  • Windows 10/11
Pokémon Sword battle against a wild Machop with the BattleLens card showing its type, catch rate, matchup against Scorbunny, weaknesses and evolution
Real game screenshot. Pokémon Sword © 2019 Nintendo / Creatures Inc. / GAME FREAK inc. The card is drawn by BattleLens.
1,025Pokémon, with forms and Megas
Gen 1–9type chart of your game
5languages for Pokémon data
0 €free, MIT licensed

Why BattleLens

Stop pausing the game to look things up.

Without BattleLens

  1. Pause the game
  2. Alt-tab to the browser
  3. Search the Pokémon and scroll to its types
  4. Work out the type chart in your head
  5. Back to the game… and again next battle

With BattleLens

The card is already there when the battle starts.

  • Weaknesses ×2 and ×4, resistances and immunities
  • Advantage, neutral or disadvantage against your Pokémon
  • Catch difficulty before you throw a single ball
  • Hides by itself when the battle ends

How it works

Set up once. Then just play.

  1. 1

    Pick your emulator

    mGBA, DeSmuME, melonDS, Citra, Switch emulators… BattleLens doesn't touch the game or its memory: it only looks at the window.

  2. 2

    Calibrate once per game

    Pick a ready-made preset for your game, or draw a box around the opponent's name. BattleLens recognises the game from the window title and remembers it.

  3. 3

    Just play

    Every time a battle starts, the card pops up by itself and hides when the battle ends. No keys to press.

Two modes

Casual run or Nuzlocke? You choose the detail.

Switch anytime with Ctrl+Alt+M.

Normal

For adventuring and catching

  • Compact card that barely covers the game
  • Catch difficulty front and center
  • Weaknesses, immunities and evolution
  • Advantage / disadvantage against your Pokémon
Normal mode card
Competitive

For hard battles and challenge runs

  • Level and actual stats at that level (min–max)
  • Likely moves, flagged when they hit you hard
  • Who's faster, you or them
  • Abilities that change matchups (Levitate → Ground ×0)
  • EV yield, weight for Low Kick, stat profile
Competitive mode card with level, stat ranges, abilities, likely moves and training data

Your team, too

Double battles and your own Pokémon

Calibrate your Pokémon's name and the second opponent too: you get one card per opponent and an instant verdict for every turn.

  • Against your X: what your types do to it and what its types do to you
  • Your moves: read from the Fight menu, with how much each one hurts
  • Doubles: two cards side by side, one per opponent
Double battle: Galarian Zigzagoon and Stufful cards side by side, each compared with your Scorbunny

For streamers

Your viewers see the card too.

Turn on stream mode and add BattleLens to OBS as a browser source. The card shows up on a transparent background with every new opponent and hides when the battle ends.

  • Copy URL for OBS right from the tray menu
  • Show or hide it live with Ctrl+Alt+S
  • Optional: turned off, nothing changes

Everything included

Built for every Pokémon game

Any emulator

Reads the screen with Windows' own OCR, even when other windows cover the emulator.

Ready-made presets

GB, GBA, DS and Sword/Shield: BattleLens finds the game image and shows what it reads before you save.

Right for each generation

Regional forms (Alola, Galar, Hisui, Paldea), past types, stats and the type chart of the game you're playing.

Megas and alternate forms

Rotom, Deoxys, Giratina, Mega Evolutions… cycle through the forms with Ctrl+Alt+F.

Your language

Interface in English or Spanish. Names, types, abilities and moves in English, Spanish, French, German and Italian.

Private and offline

All data ships with the app. The only connection is an optional daily update check.

Install in a minute

Installer without admin rights, or a portable ZIP. It lives quietly in the system tray.

One-click bug reports

«Report a problem…» packs what BattleLens sees into a ZIP and opens a pre-filled GitHub form. Nothing is sent for you.

Works with

  • mGBA
  • DeSmuME
  • melonDS
  • Citra
  • Switch emulators
  • …any windowed emulator

Presets for

  • Red / Blue / Yellow
  • Gold / Silver / Crystal
  • Ruby / Sapphire / Emerald
  • FireRed / LeafGreen
  • Diamond / Pearl / Platinum
  • HeartGold / SoulSilver
  • Black / White (2)
  • Sword / Shield

Other games work too: calibrate them manually in a few seconds.

FAQ

Questions, answered

Does it modify the game or read the emulator's memory?

No. BattleLens only looks at the emulator window and reads the opponent's name with Windows' built-in OCR. That's why it works with any emulator and any generation.

Is it really free?

Yes. It's open source under the MIT license, with no ads, accounts or paid tiers.

Why does Windows show a SmartScreen warning?

The executable isn't signed with a paid certificate. Click More info → Run anyway. You can verify the download against SHA256SUMS.txt from the release.

Do I need an internet connection?

No. All Pokémon data ships with the app. The only connection is an optional daily check for new versions.

What if Windows OCR is missing on my PC?

Almost every PC already has it for its language. If not, BattleLens tells you on startup and offers Install Windows OCR… from its menu.

Does it work with nicknamed Pokémon?

Opponents are read by their species name, so yes. Your own Pokémon can't be recognised if it has a nickname; the opponent's card still works.

Your next battle is one download away.

  1. Download BattleLens-Setup from the latest release (or the portable ZIP).
  2. Run it — no administrator rights needed.
  3. Find the icon in the system tray, pick your emulator window and choose a preset.

Windows 10 (2004 or later) or 11, 64-bit · Uses the OCR built into Windows