DualScreenDex
DualScreenDex is a companion Pokédex for dual-screen Android handhelds that uses live OCR to detect the Pokémon on screen and instantly display their stats, weaknesses, and resistances.
- Type: tool
- Runs on Android
- By Enrique Paulino
- Latest release v2.0.1, 2026-02-15
- Source: https://github.com/enrique-paulino/DualScreenDex
README
DualScreenDex
DualScreenDex is a companion Pokedex app designed specifically for dual-screen Android gaming handhelds (like the Ayn Thor). It uses live OCR screen scanning to automatically detect the Pokémon currently on your screen and display their stats, weaknesses, and resistances instantly.
New in v2.0
- Modular Architecture: Complete internal refactor replacing the previous monolithic system with a cleaner, more scalable modular structure.
- Custom ROM Profiles:
- Built-in profiles for:
- Vanilla Pokémon (Gen 1)
- Vanilla Pokémon (Gen 2–5)
- Vanilla Pokémon (Gen 6+)
- Luminescent Platinum
- Radical Red
- Create fully custom profiles by uploading your own
.csvfiles:- Custom Pokédex data
- Regional variants
- Type matchup logic
- Designed to support any ROM hack or custom game.
- Built-in profiles for:
- Advanced Screen Scanning:
- Choose whether to scan the top or bottom screen.
- Select scanning orientation (left side or right side) depending on how your game displays enemy Pokémon.
- Ideal for different emulator layouts and custom ROM UI designs.
Features
-
Live Battle Scanner: Uses Android's AccessibilityService and Google ML Kit to scan the selected screen region for Pokémon names in real-time.
-
Themes (introduced in v1.1):
- OLED Mode: True black background for OLED screens.
- Pokedex Red: Classic green-tinted aesthetic with scanlines.
- Pastel Magic: Pastel gradients with floating stars.
- Dynamic: Adapts UI colours based on the detected Pokémon's type.
-
Smart Multitasking:
- Battle Mode: Automatically displays data for the Pokémon detected on screen (supports multi-Pokémon battles e.g. 2v2, 3v3).
- Pokedex Mode: Browse the full database manually.
- "Battle Tab": Minimises active battle data to a small tab at the bottom while you browse, allowing you to multitask without losing your place.
-
Generation Selector: Dynamic type system allows you to switch between logic for Gen 1, Gen 2–5, and Gen 6+ (e.g. retrofitting Fairy types back to Normal for older games).
-
Battery Optimised:
- Scanner automatically sleeps (
onPause) when the app is backgrounded. - Uses a dynamic polling rate (2000ms) to minimise CPU usage and heat.
- Crops image processing to the selected game window region to save resources.
- Scanner automatically sleeps (
-
Database Features
- Regional Variants: Full support for Alolan, Galarian and Hisuian forms.
- Form Switching: A toggle button appears automatically when a Pokémon has multiple forms.
- Offline Ready: Includes a complete database of all 1,025 Pokémon.
Roadmap
- Custom ROM Support: Import
.csvfiles to support ROM hacks. - Custom Matchup Logic: User-defined type effectiveness charts (e.g. changing Fire to be weak against Ice).
- v1.1: Themes, regional variants, and improved scanning.
- v2.0: Modular architecture, custom ROM profiles, advanced screen scanning controls.
- Language Support: Support for non-English languages that have different Pokémon names (e.g. Japanese).
- TTS: Have the app read out Pokémon entries in a Pokédex-robot voice.
Demo Video
Screenshots
| Dynamic Theme | OLED Theme | Pokemon Red Theme | Pastel Magic Theme |
|---|---|---|---|
CSV Formats
- Pokedex CSV:
id,name,type1,type2e.g. vanilla pokedex - Regional Forms CSV:
id,region,type1,type2e.g. vanilla regional - Matchup CSV: Standard matchup chart
Installation
- Download the latest APK from the Releases page.
- Install the APK on your Android device.
- You will be prompted to enable DualScreenDex in your Android Accessibility Settings.
- Note: This permission is used strictly to read the screen content for local text recognition. No images are saved or transmitted off-device.
Tech Stack
- Language: Kotlin
- UI: XML Layouts / Material Design
- OCR: Google ML Kit (On-Device Text Recognition)
- Database: SQLite (Pre-populated asset)
- Architecture (v2.0): Modular structure using
AccessibilityServiceand GlobalBroadcastReceiver
License
This project is licensed under the MIT License – see the LICENSE file for details.
Disclaimer: DualScreenDex is an unofficial, free fan-made app and is NOT affiliated, endorsed, or supported by Nintendo, Game Freak, or The Pokémon Company in any way. Pokémon and Pokémon character names are trademarks of Nintendo.