🎮 Download and play Super Mario World ROM hacks with one click
A simple desktop app that automatically downloads, patches, and organizes ROM hacks from SMWCentral. Works on Windows, Mac, and Linux.
- Download
SMWC-Downloader-Windows-x64.zipfrom the Releases page - Extract the ZIP file to any folder you want (like your Desktop or Program Files)
- Double-click
SMWC Downloader.exeto run the app - If Windows shows a security warning: Click "More info" → "Run anyway" (this is normal for new apps)
Important
Windows may flag this app because it's new and unsigned. This is normal!
If you see warnings:
- Browser: Click "Keep" if download gets blocked
- Windows Defender: Click "More info" → "Run anyway"
- To prevent future warnings: Add the app folder to Windows Defender exclusions in Settings → Update & Security → Windows Security → Virus & threat protection → Exclusions
- Download
SMWC-Downloader-macOS-Universal.dmgfrom the Releases page - Open the DMG file and drag the app to your Applications folder
- First time only: Right-click the app → "Open" → "Open" (to bypass security warning)
- After that, you can launch it normally from Applications or Spotlight
- Download
SMWC-Downloader-Linux-x64.tar.gzfrom the Releases page - Extract:
tar -xzf SMWC-Downloader-*.tar.gz - Run the installer:
./install.sh(this adds the app to your Applications menu) - Launch from Applications menu or run
smwc-downloaderin terminal
- Launch the app - it will open to the main dashboard
- Go to Settings: Click the "Settings" tab at the top of the app
- Set your ROM folder: Click the folder icon to choose where you want your patched ROMs saved
- Add your base ROM: Click "Browse" next to "Super Mario World ROM" and select your clean SMW ROM file
- You're ready! The app will remember these settings and you can return to the main dashboard
- Set your filters: Use the filter options to narrow down what you want to search for (difficulty, type, author, etc.)
- Choose display mode: Use the "Show only non-downloaded hacks" checkbox to hide hacks you already own, making it easier to find new content
- Search for hacks: Click the "Search Hacks" button to pull data from the SMWCentral API based on your filters
- Browse results as they load: Results appear progressively as each page loads - no need to wait for all data to finish loading
- Select hacks to download: Click the checkmark in the first column for each hack you want to download
- Tip: Click the column header to select ALL hacks at once
- Already downloaded hacks are shown in italic with muted colors to help you identify what you already own
- Start downloading: Click "Download & Patch" to begin downloading and patching your selected hacks
- Wait for completion: The app will automatically download each hack and apply it to your base ROM
- Play: Your patched ROMs will be saved to your chosen folder, ready to play in any emulator
- View your collection: Click the "Collection" tab to see all your downloaded ROMs
- Add hacks manually: Use the "Add Hack" button to track hacks you've played from other sources
- Track progress: Mark hacks as completed, rate them (1-5 stars), and add personal notes
- Quick editing: Click directly on completion dates, time to beat, or notes to edit them
- Advanced editing: Double-click any hack to open the full edit dialog
- 📁 Quick file access: Click the folder icon next to any hack name to instantly open
its file location in your system's file manager
7. 🎮 Quick launch: Click the play icon (▶) next to any hack to launch it directly in your configured emulator
8. Filter and sort: Use filters to find specific hacks, or click column headers to sort
When editing Completed Date and Time to Beat fields, the app supports flexible input formats:
📅 Date Formats:
MM/DD/YYYY- Example:12/25/2024MM-DD-YYYY- Example:12-25-2024MM.DD.YYYY- Example:12.25.2024YYYY/MM/DD- Example:2024/12/25YYYY-MM-DD- Example:2024-12-25
⏱️ Time to Beat Formats:
| Format Type | Pattern | Examples | Description |
|---|---|---|---|
| Colon-Separated | HH:MM:SS |
1:30:45, 12:05:30 |
Hours:Minutes:Seconds |
MM:SS |
90:30, 5:15 |
Minutes:Seconds | |
| Letter Suffix | XhYmZs |
2h 30m 15s, 1h 45m, 90m, 45s |
Hours/minutes/seconds with letters |
| Flexible spacing | 2h30m15s = 2h 30m 15s |
Spaces optional | |
| Day Formats | XdYhZmWs |
14d 10h 2m 1s, 7d 12h, 2d |
Days/hours/minutes/seconds |
| Shortened | 14d 10 (assumes hours) |
Advanced shorthand | |
| Word-Based | X minutes/mins |
150 minutes, 90 mins |
Full word formats |
| Simple Number | X |
90, 5, 120 |
Just a number (assumes minutes) |
- Download location: Change where ROMs are saved
- Multi-type downloads: Configure how hacks with multiple types (like "Kaizo, Tool-Assisted") are handled
- Primary only: Download to the main type folder only
- Copy to all folders: Create copies in each applicable type folder
- Emulator integration: Configure your favorite emulator to launch games directly from the Collection page
- Supports RetroArch, Snes9x, and any other emulator
- Custom command-line arguments with
%1placeholder support
- Cross-platform: Windows, macOS (.app bundles), and Linux
- Auto-updates: Choose if you want automatic app updates
- Theme: Switch between light and dark modes with instant, smooth transitions and optimized performance
- API Delay Slider: Set delay from 0.0 to 3.0 seconds between API requests to avoid rate limiting issues
The app supports launching ROMs directly in your favorite emulator with one click!
- Go to Settings → Emulator Configuration
- Browse for your emulator executable:
- Windows: Select the
.exefile (e.g.,snes9x-x64.exe,retroarch.exe) - macOS: Select the
.appbundle (e.g.,Snes9x.app) - the app will automatically find the executable inside - Linux: Select the binary (e.g.,
/usr/bin/snes9x-gtk,/usr/games/retroarch)
- Windows: Select the
- Optional: Add command-line arguments
- Check "Use Custom Command Line Arguments"
- Enter your desired arguments (see examples below)
- Save and test: The play icon (▶) will appear next to downloaded hacks in your Collection
RetroArch:
-L cores/snes9x_libretro.dll "%1"
Or on macOS:
-L ~/Library/Application/Support/RetroArch/cores/snes9x_libretro.dylib "%1"
Or on Linux:
-L ~/.config/retroarch/cores/snes9x_libretro.so "%1"
Snes9x:
--fullscreen
Custom Arguments:
- Use
%1as a placeholder for the ROM file path - If you don't use
%1, the ROM will be automatically added at the end - Arguments are parsed with proper quote handling
Windows:
- Browse for
.exefiles - Emulator runs without console window
macOS:
- Browse for
.appbundles (e.g.,Snes9x.app,RetroArch.app) - The app automatically converts
.apppaths to the actual executable inside - Example:
Snes9x.app→Snes9x.app/Contents/MacOS/Snes9x
Linux:
- Browse for binaries in
/usr/bin/,/usr/games/, or custom locations - Make sure the binary has execute permissions
Windows may show "Windows protected your PC" when running the app. This is normal for new applications. Click "More info" → "Run anyway" to continue.
macOS may say the app is from an "unidentified developer." Right-click the app → "Open" → "Open" to bypass this. You only need to do this once.
If the app won't launch, install these packages:
- Ubuntu/Debian:
sudo apt install python3-tk - Fedora:
sudo dnf install tkinter
Check the folder path shown in Settings. By default, ROMs are saved to:
- Windows:
Desktop\SMWCentral Hacks\ - Mac:
Desktop/SMWCentral Hacks/ - Linux:
~/Desktop/SMWCentral Hacks/
If clicking the play icon doesn't work:
- Check emulator path: Go to Settings → Emulator Configuration and verify the path is correct
- macOS users: Make sure you selected the
.appfile, not the executable inside - Check arguments: Disable "Use Custom Command Line Arguments" to test without arguments first
- Test manually: Try launching your emulator with a ROM file manually to ensure it works
- Check logs: Go to Settings page and check the log output for error messages
- Your Operating System: Windows 10+, macOS 10.15+, or modern Linux
- A clean SMW ROM: Unmodified Super Mario World ROM file (.smc or .sfc)
- Storage space: About 20 MB for the app, plus space for your ROM collection
- Internet connection: Required for downloading hacks and app updates
- Optional - Emulator: Any SNES emulator (Snes9x, RetroArch, bsnes, etc.) for the quick-launch feature
Version 4.8 - Latest Release
- Emulator Integration: Launch ROMs directly from the Collection page with one click
- Configure any emulator (RetroArch, Snes9x, bsnes, etc.)
- Custom command-line arguments with
%1placeholder support - Cross-platform support: Windows, macOS (.app bundles), and Linux
- Play icon (▶) appears next to downloaded hacks when emulator is configured
- macOS .app Bundle Support: Automatic conversion of
.appbundles to executable paths- Select
Snes9x.appand the app automatically findsSnes9x.app/Contents/MacOS/Snes9x - Works with all standard macOS application bundles
- Select
- Live Difficulty Mapping from SMWC API: Automatically fetches current difficulty categories from SMWC on app startup
- Difficulty mappings cached in config.json for offline use
- Ensures app always uses latest SMWC difficulty names without code updates
- Difficulty Migration System: Automatic detection and migration of SMWC difficulty category renames
- Auto-detects when difficulty names have changed by comparing against live SMWC data
- Migration UI in Settings page with check/apply buttons
- Automatically renames difficulty folders and updates file paths
- Automatic v4.8 Migration: Seamless upgrade from v4.7
- Automatically adds new fields to existing hacks on first launch
- Silent migration - no user intervention needed
- Settings page layout optimized: Emulator and Difficulty Migration sections now side-by-side for better space utilization
- Enhanced log section with more vertical space
- Improved cross-platform emulator path handling
- Updated difficulty category from "Skilled" to "Intermediate" to match SMWC
- Collection page Type filter now correctly finds multi-type hacks
- Difficulty data model consolidated for better performance
- Fixed Type filter not finding multi-type hacks (e.g., searching "Puzzle" now finds "Standard, Puzzle")
- Fixed Collection page difficulty filter with new data model
- Removed false migration warnings
Previous Versions
- Enhanced Download Selection: Click anywhere on a search result row to select/deselect hacks for download
- Improved Filter Layout: Responsive filter sections work better when window is maximized
- Clearer Filter Controls: Renamed "Search Criteria" to "Show/Hide Filters" for better clarity
- Time Parsing Accuracy: Fixed critical bug where time inputs like "27m 22s" were incorrectly parsed as "2h 7m 22s"
- Input Format Reliability: Improved regex pattern matching order to handle all time formats correctly
- Data Integrity: Ensures accurate time-to-beat tracking in Collection page
- Auto-Refresh on Navigation: Dashboard and Collection pages now automatically refresh data when navigating between tabs
- Enhanced Input Validation: Better handling of edge cases in time parsing (supports days, overflow values, etc.)
- Progressive Data Loading: Results display as each page loads from the API for instant review
- Already Downloaded Indicator: Downloaded hacks shown in italic with muted colors
- Smart Collection Filtering: "Show only non-downloaded hacks" checkbox for faster browsing
- Enhanced Theme System: Improved color management and visual consistency
- Performance Optimizations: Faster theme updates and UI responsiveness
- Search Experience: Browse results immediately as data loads
- Collection Management: Better visual distinction and filtering for owned content
- Theme Performance: Optimized color updates across light and dark modes
- UI Polish: Consistent visual elements during theme transitions
- Fixed dark gray selection colors appearing in light mode
- Resolved delays in theme color updates for downloaded indicators
- Fixed visual inconsistencies during theme switching
- Progressive Data Loading: Results display as each page loads from the API for instant review
- Already Downloaded Indicator: Downloaded hacks shown in italic with muted colors
- Smart Collection Filtering: "Show only non-downloaded hacks" checkbox for faster browsing
- Enhanced Theme System: Improved color management and visual consistency
- Performance Optimizations: Faster theme updates and UI responsiveness
- Search Experience: Browse results immediately as data loads
- Collection Management: Better visual distinction and filtering for owned content
- Theme Performance: Optimized color updates across light and dark modes
- UI Polish: Consistent visual elements during theme transitions
- Fixed dark gray selection colors appearing in light mode
- Resolved delays in theme color updates for downloaded indicators
- Fixed visual inconsistencies during theme switching
Previous Versions
- Cross-Platform Support: Full compatibility with Windows, macOS, and Linux
- Download State Management: Collection tab is now locked during active downloads to prevent data corruption
- Enhanced Dashboard Analytics: Improved accuracy and data tracking for collection metrics
- Dashboard implementation with analytics and charts
- Collection page with comprehensive filtering and editing
- Theme support (light/dark modes)
- Improved bulk download workflow
- Multi-type download support
- Enhanced search and filtering capabilities
- Progress tracking improvements
- Bug fixes and stability improvements
- Initial release with core downloading functionality
- Basic patching system
- Simple collection tracking
- Windows-only support
Made for the Super Mario World ROM hacking community ❤️


