A modern, user-friendly game ROM downloader application built with Python and SDL2. This application provides a sleek interface for browsing and downloading retro game ROMs with a controller-friendly design.
- 🎮 Controller Support: Full gamepad support for easy navigation
- ⌨️ On-screen Keyboard: Virtual keyboard for search functionality
- 📱 Modern UI: Clean and intuitive interface built with SDL2
- 🗂️ Category Management: Browse games by platform/category
- ⬇️ Download Management: Track and manage game downloads
- 🖼️ Rom Imgs Scrapping: Downloading the game 2d art box cover
- 🔍 Search Functionality: Find games quickly
- 📺 Game Preview: View game information and images
- 🎯 Progress Tracking: Visual feedback for downloads
- 💾 Multi-format Support: Handles various ROM formats and compression
- 🔄 Auto Updates: Built-in OTA updates for seamless app maintenance
- Python 3.6+
- SDL2 and its dependencies
- Required Python packages (listed in requirements.txt)
-
Download the latest release.
-
Extract the downloaded file to:
- /mnt/SDCARD/Apps/
- Clone the repository:
git clone [repository-url]
cd EmuDrop- Using WSL2 run the docker container inside tools directory and place the code inside workspace:
sudo make shell- Cross compiling the app to Trimui Smart Pro:
pyinstaller --onefile --noconsole --name EmuDrop main.py- Place the EmuDrop files from dist/ directory platform/Trimui Smart Pro/EmuDrop
cp dist/EmuDrop/ platform/Trimui Smart Pro/EmuDrop- Copy EmuDrop directory to /mnt/SDCARD/Apps/
- Start the application:
python main.py-
Navigation:
- Use arrow keys or controller D-pad to navigate menus
- Press Enter/Start to select
- Press Esc/Back to return to previous menu
- Use the on-screen keyboard for search
-
Downloading Games:
- Browse categories or search for specific games
- Select a game to view details
- Confirm download when prompted
- Monitor download progress in the downloads view
app.py: Main application class and core functionalitymain.py: Application entry pointui/: User interface componentsutils/: Utility functions and helpersdata/: Data management and storageplatform/: Platform-specific implementationstools/toolchain: Toolchain for Trimui Smart Pro using docker imagetools/roms scrapper: Scrapping the Game Roms links form https://www.consoleroms.com.components/: Reusable UI componentsassets/: Images, fonts, and other resources
The application is built using:
- PySDL2 for graphics and input handling
- Custom UI components for a controller-friendly interface
- Asynchronous download management
- Efficient resource management with texture caching
- Modular architecture for easy maintenance
The application maintains two log files:
EmuDrop.log: General application logs
Contributions are welcome! Please feel free to submit pull requests.
- SDL2 and PySDL2 teams
- Contributors and maintainers