|
7 | 7 | <img src="/Screenshots/Screenshot.png" width="75%"> |
8 | 8 | <img src="/Screenshots/BigPictureMode.png" width="75%"> |
9 | 9 |
|
10 | | -A cross-platform desktop utility for managing, inspecting, modifying & launching retro game ROMs. |
| 10 | +A cross-platform desktop utility for managing, inspecting, and patching retro game ROMs. |
11 | 11 |
|
12 | 12 | [](LICENSE) |
13 | 13 | [](https://dotnet.microsoft.com/download/dotnet/8.0) |
@@ -69,7 +69,14 @@ Framework-dependent builds require the [.NET 8 Runtime](https://dotnet.microsoft |
69 | 69 |
|
70 | 70 | For detailed user guides and reference material, see the [full documentation](docs/README.md). |
71 | 71 |
|
72 | | -- [ROM Browser & RetroArch Integration Guide](docs/features/rom-browser-guide.md) — step-by-step guide to browsing, managing, and launching ROMs with RetroArch |
| 72 | +### Quick Links |
| 73 | + |
| 74 | +- **[Installation Guide](docs/getting-started/installation.md)** — download and install on Windows, Linux, or macOS |
| 75 | +- **[First Steps](docs/getting-started/first-steps.md)** — get up and running in minutes |
| 76 | +- **[ROM Browser Guide](docs/guides/rom-browser-guide.md)** — step-by-step guide to browsing, managing, and launching ROMs |
| 77 | +- **[Big Picture Mode](docs/guides/big-picture-mode.md)** — fullscreen, controller-friendly ROM library |
| 78 | +- **[Keyboard Shortcuts](docs/configuration/keyboard-shortcuts.md)** — all shortcuts in one place |
| 79 | +- **[Troubleshooting](docs/troubleshooting.md)** — common issues and solutions |
73 | 80 |
|
74 | 81 | ## Features |
75 | 82 |
|
@@ -441,7 +448,8 @@ For detailed user guides and reference material, see the [full documentation](do |
441 | 448 | - Auto-detect or manually configure the RetroArch executable path |
442 | 449 | - Scan for installed libretro cores and identify missing ones |
443 | 450 | - Download all missing cores from the official RetroArch buildbot |
444 | | -- Supports Windows, Linux, and macOS platforms |
| 451 | +- Supports Windows (x64), Linux (x64, ARM64), and macOS (Intel, Apple Silicon) |
| 452 | +- Handles Flatpak and Snap RetroArch installations on Linux |
445 | 453 | - Download progress with cancel support |
446 | 454 |
|
447 | 455 | </details> |
@@ -537,106 +545,199 @@ For detailed user guides and reference material, see the [full documentation](do |
537 | 545 |
|
538 | 546 | </details> |
539 | 547 |
|
| 548 | +### RetroArch |
| 549 | + |
| 550 | +<details> |
| 551 | +<summary><strong>RetroArch Playlist Creator</strong></summary> |
| 552 | + |
| 553 | +- Create RetroArch playlists (.lpl) from a directory of ROM files |
| 554 | +- Select from all supported systems with automatic database name mapping |
| 555 | +- Load and edit existing RetroArch playlists |
| 556 | +- Add or remove individual playlist entries |
| 557 | +- Download thumbnails (box art, snapshots, title screens) from the [Libretro Thumbnails](https://github.com/libretro-thumbnails) database |
| 558 | +- Selectable thumbnail categories with overwrite option |
| 559 | +- Save playlists in RetroArch's JSON .lpl format |
| 560 | +- Automatic playlist and thumbnail directory detection for Windows, Linux, and macOS |
| 561 | + |
| 562 | +</details> |
| 563 | + |
| 564 | +<details> |
| 565 | +<summary><strong>RetroArch Shortcut Creator</strong></summary> |
| 566 | + |
| 567 | +- Create desktop shortcuts that launch a ROM directly in RetroArch with a specific libretro core |
| 568 | +- Windows `.lnk` shortcuts (created via PowerShell), Linux `.desktop` files, macOS `.command` scripts |
| 569 | +- Select system and core from a dropdown of all available cores |
| 570 | +- Optional custom icon, fullscreen mode, and extra RetroArch arguments |
| 571 | +- Override RetroArch path per shortcut |
| 572 | +- Automatic core directory detection (including Flatpak, Snap, and Homebrew locations) |
| 573 | +- Shell-safe argument escaping on Linux and macOS |
| 574 | + |
| 575 | +</details> |
| 576 | + |
| 577 | +<details> |
| 578 | +<summary><strong>RetroAchievements Writer</strong></summary> |
| 579 | + |
| 580 | +- Create and edit achievement definition files compatible with [RetroAchievements.org](https://retroachievements.org) |
| 581 | +- Standard RACache local achievement JSON format for import into the RetroAchievements web toolkit |
| 582 | +- Add achievements with title, description, points, memory address conditions, type, author, and badge ID |
| 583 | +- Achievement types: Standard, Missable, Progression, Win Condition |
| 584 | +- Supports 78 console IDs (NES, SNES, N64, Mega Drive, Game Boy, PlayStation, and many more) |
| 585 | +- Validate achievement sets for completeness and correctness |
| 586 | +- Export as plain-text local format for RAIntegration / RALibretro |
| 587 | +- Load and save achievement sets as JSON files |
| 588 | + |
| 589 | +</details> |
| 590 | + |
| 591 | +### Analogue |
| 592 | + |
| 593 | +<details> |
| 594 | +<summary><strong>Analogue Pocket</strong></summary> |
| 595 | + |
| 596 | +- Browse and manage openFPGA cores installed on the Analogue Pocket SD card |
| 597 | +- Export Pocket screenshots (BMP) to a destination folder |
| 598 | +- Backup and restore save files with directory structure preserved |
| 599 | +- Manage and delete save states with multi-select and batch delete |
| 600 | +- Extract and export Game Boy Camera photos from `.sav` files as grayscale BMP images |
| 601 | +- Auto-copy files from a source folder to the Pocket SD card matching the directory structure |
| 602 | +- Generate placeholder library images for ROMs that don't have one (160×144 BMP with game name) |
| 603 | +- Browse game platform folders under Assets |
| 604 | +- SD card validation to verify correct Pocket directory structure |
| 605 | + |
| 606 | +</details> |
| 607 | + |
| 608 | +<details> |
| 609 | +<summary><strong>Analogue Mega SG</strong></summary> |
| 610 | + |
| 611 | +- Generate custom 8×8 pixel fonts for the Mega SG on-screen menu |
| 612 | +- Create fonts from a 128×128 BMP source image (16×16 grid of 8×8 characters) or use the built-in default font |
| 613 | +- Convert save files between formats with endianness swapping, power-of-two padding, and trailing byte trimming |
| 614 | +- Analyze save file type (EEPROM, SRAM, Flash) from file size |
| 615 | +- Convert between `.sav` and `.srm` save formats |
| 616 | + |
| 617 | +</details> |
| 618 | + |
| 619 | +<details> |
| 620 | +<summary><strong>Analogue NT / Super NT</strong></summary> |
| 621 | + |
| 622 | +- Generate custom 8×8 pixel fonts for the Analogue NT and Super NT on-screen menus |
| 623 | +- Create fonts from a 128×128 BMP source image or use the built-in default font |
| 624 | +- Repair NES ROM headers using a safe temp-file workflow (writes to temp file first, then replaces original) |
| 625 | + |
| 626 | +</details> |
| 627 | + |
| 628 | +<details> |
| 629 | +<summary><strong>Analogue 3D</strong></summary> |
| 630 | + |
| 631 | +- Manage N64 Game Pak ROMs on the Analogue 3D SD card |
| 632 | +- Scan and list all Game Paks with metadata (internal name, game code, file size) |
| 633 | +- Per-game display settings: resolution, aspect ratio, smoothing, crop overscan |
| 634 | +- Per-game hardware settings: Expansion Pak, Rumble Pak, CPU overclock, Controller Pak mode |
| 635 | +- Set or remove custom label artwork (PNG) for each Game Pak |
| 636 | +- Atomic settings writes (temp file + rename) to prevent SD card corruption |
| 637 | +- SD card validation to verify correct Analogue 3D directory structure |
| 638 | + |
| 639 | +</details> |
| 640 | + |
540 | 641 | ## Supported Systems |
541 | 642 |
|
542 | 643 | | System | Extensions | |
543 | 644 | |---|---| |
544 | | -| Nintendo Entertainment System (NES) | `.nes` | |
545 | | -| Super Nintendo (SNES) | `.smc`, `.sfc` | |
546 | | -| Nintendo 64 | `.z64`, `.n64`, `.v64` | |
547 | | -| Nintendo 64DD | `.ndd` | |
548 | | -| Nintendo DS | `.nds` | |
549 | | -| Nintendo 3DS | `.3ds`, `.cia` | |
550 | | -| Game Boy | `.gb` | |
551 | | -| Game Boy Color | `.gbc` | |
552 | | -| Game Boy Advance | `.gba` | |
553 | | -| Nintendo Virtual Boy | `.vb`, `.vboy` | |
554 | | -| Sega Master System | `.sms` | |
555 | | -| Sega Mega Drive / Genesis | `.md`, `.gen`, `.bin` | |
556 | | -| Sega CD | `.iso`, `.cue` | |
557 | | -| Sega 32X | `.32x` | |
558 | | -| Sega Game Gear | `.gg` | |
| 645 | +| Amiga CD32 | `.iso`, `.cue` | |
| 646 | +| Amstrad CPC | `.dsk`, `.cdt`, `.sna` | |
| 647 | +| Arcade (MAME) | `.zip` | |
559 | 648 | | Atari 2600 | `.a26` | |
560 | 649 | | Atari 5200 | `.a52` | |
561 | 650 | | Atari 7800 | `.a78` | |
562 | 651 | | Atari 800 / XL / XE | `.atr`, `.xex`, `.car`, `.cas` | |
563 | 652 | | Atari Jaguar | `.j64`, `.jag` | |
564 | 653 | | Atari Lynx | `.lnx`, `.lyx` | |
565 | | -| PC Engine / TurboGrafx-16 | `.pce`, `.tg16` | |
566 | | -| SNK Neo Geo | `.neo` | |
567 | | -| SNK Neo Geo CD | `.iso`, `.cue` | |
568 | | -| SNK Neo Geo Pocket / Pocket Color | `.ngp`, `.ngc` | |
569 | 654 | | Coleco ColecoVision | `.col`, `.cv` | |
| 655 | +| Fairchild Channel F | `.chf` | |
| 656 | +| Game Boy | `.gb` | |
| 657 | +| Game Boy Advance | `.gba` | |
| 658 | +| Game Boy Color | `.gbc` | |
570 | 659 | | Mattel Intellivision | `.int` | |
| 660 | +| Memotech MTX | `.mtx`, `.run` | |
571 | 661 | | MSX | `.mx1` | |
572 | 662 | | MSX2 | `.mx2` | |
573 | 663 | | NEC PC-88 | `.d88`, `.t88` | |
574 | | -| Amstrad CPC | `.dsk`, `.cdt`, `.sna` | |
| 664 | +| Nintendo 3DS | `.3ds`, `.cia` | |
| 665 | +| Nintendo 64 | `.z64`, `.n64`, `.v64` | |
| 666 | +| Nintendo 64DD | `.ndd` | |
| 667 | +| Nintendo DS | `.nds` | |
| 668 | +| Nintendo Entertainment System (NES) | `.nes` | |
| 669 | +| Nintendo GameCube | `.gcm`, `.iso` | |
| 670 | +| Nintendo Virtual Boy | `.vb`, `.vboy` | |
| 671 | +| Nintendo Wii | `.iso` | |
575 | 672 | | Oric / Atmos / TeleStrat | `.tap` | |
576 | | -| Thomson MO5 | `.mo5`, `.k7`, `.fd` | |
577 | | -| Watara Supervision | `.sv` | |
578 | | -| Radio Shack Color Computer | `.ccc` | |
579 | 673 | | Panasonic 3DO | `.3do`, `.iso`, `.cue` | |
| 674 | +| PC Engine / TurboGrafx-16 | `.pce`, `.tg16` | |
580 | 675 | | Philips CD-i | `.iso`, `.cue` | |
581 | | -| Amiga CD32 | `.iso`, `.cue` | |
582 | | -| Sega Saturn | `.iso`, `.cue` | |
| 676 | +| Radio Shack Color Computer | `.ccc` | |
| 677 | +| Sega 32X | `.32x` | |
| 678 | +| Sega CD | `.iso`, `.cue` | |
583 | 679 | | Sega Dreamcast | `.cdi`, `.gdi`, `.iso`, `.cue` | |
584 | | -| Nintendo GameCube | `.gcm`, `.iso` | |
585 | | -| Nintendo Wii | `.iso` | |
586 | | -| Arcade (MAME) | `.zip` | |
587 | | -| Fairchild Channel F | `.chf` | |
| 680 | +| Sega Game Gear | `.gg` | |
| 681 | +| Sega Master System | `.sms` | |
| 682 | +| Sega Mega Drive / Genesis | `.md`, `.gen`, `.bin` | |
| 683 | +| Sega Saturn | `.iso`, `.cue` | |
| 684 | +| SNK Neo Geo | `.neo` | |
| 685 | +| SNK Neo Geo CD | `.iso`, `.cue` | |
| 686 | +| SNK Neo Geo Pocket / Pocket Color | `.ngp`, `.ngc` | |
| 687 | +| Super Nintendo (SNES) | `.smc`, `.sfc` | |
| 688 | +| Thomson MO5 | `.mo5`, `.k7`, `.fd` | |
588 | 689 | | Tiger Game Com | `.tgc` | |
589 | | -| Memotech MTX | `.mtx`, `.run` | |
| 690 | +| Watara Supervision | `.sv` | |
590 | 691 |
|
591 | 692 | ### System Feature Coverage |
592 | 693 |
|
593 | 694 | | System | Header Parsing | Security Analysis | Dump Verification | Cheat Codes | Header Fixing | |
594 | 695 | |---|---|---|---|---|---| |
595 | | -| NES | ✔ | ✔ | ✔ | ✔ | ✔ | |
596 | | -| SNES | ✔ | ✔ | ✔ | ✔ | ✔ | |
597 | | -| N64 | ✔ | ✔ | ✔ | ✔ | ✔ | |
598 | | -| N64DD | ✔ | ✔ | ✔ | — | — | |
599 | | -| Nintendo DS | ✔ | ✔ | ✔ | ✔ | ✔ | |
600 | | -| Nintendo 3DS | ✔ | ✔ | ✔ | — | — | |
601 | | -| Game Boy | ✔ | ✔ | ✔ | ✔ | ✔ | |
602 | | -| Game Boy Color | ✔ | ✔ | ✔ | ✔ | ✔ | |
603 | | -| Game Boy Advance | ✔ | ✔ | ✔ | ✔ | ✔ | |
604 | | -| Virtual Boy | ✔ | ✔ | ✔ | — | ✔ | |
605 | | -| Sega Master System | ✔ | ✔ | ✔ | ✔ | ✔ | |
606 | | -| Mega Drive / Genesis | ✔ | ✔ | ✔ | ✔ | ✔ | |
607 | | -| Sega CD | ✔ | ✔ | ✔ | ✔ | — | |
608 | | -| Sega 32X | ✔ | ✔ | ✔ | ✔ | ✔ | |
609 | | -| Sega Game Gear | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 696 | +| Amiga CD32 | ✔ | ✔ | ✔ | — | — | |
| 697 | +| Amstrad CPC | ✔ | ✔ | ✔ | — | — | |
| 698 | +| Arcade (MAME) | — | — | — | — | — | |
610 | 699 | | Atari 2600 | ✔ | ✔ | ✔ | — | — | |
611 | 700 | | Atari 5200 | ✔ | ✔ | ✔ | — | — | |
612 | 701 | | Atari 7800 | ✔ | ✔ | ✔ | — | ✔ | |
613 | 702 | | Atari 800 | ✔ | ✔ | ✔ | — | — | |
614 | 703 | | Atari Jaguar | ✔ | ✔ | ✔ | — | ✔ | |
615 | 704 | | Atari Lynx | ✔ | ✔ | ✔ | — | ✔ | |
616 | | -| PC Engine | ✔ | ✔ | ✔ | ✔ | ✔ | |
617 | | -| Neo Geo | ✔ | ✔ | ✔ | ✔ | — | |
618 | | -| Neo Geo CD | ✔ | ✔ | ✔ | — | — | |
619 | | -| Neo Geo Pocket | ✔ | ✔ | ✔ | ✔ | ✔ | |
620 | 705 | | ColecoVision | ✔ | ✔ | ✔ | — | ✔ | |
| 706 | +| Color Computer | ✔ | ✔ | ✔ | — | — | |
| 707 | +| Fairchild Channel F | ✔ | ✔ | ✔ | — | — | |
| 708 | +| Game Boy | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 709 | +| Game Boy Advance | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 710 | +| Game Boy Color | ✔ | ✔ | ✔ | ✔ | ✔ | |
621 | 711 | | Intellivision | ✔ | ✔ | ✔ | — | ✔ | |
| 712 | +| Mega Drive / Genesis | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 713 | +| Memotech MTX | ✔ | ✔ | ✔ | — | — | |
622 | 714 | | MSX / MSX2 | ✔ | ✔ | ✔ | — | ✔ | |
| 715 | +| N64 | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 716 | +| N64DD | ✔ | ✔ | ✔ | — | — | |
623 | 717 | | NEC PC-88 | ✔ | ✔ | ✔ | — | — | |
624 | | -| Amstrad CPC | ✔ | ✔ | ✔ | — | — | |
| 718 | +| Neo Geo | ✔ | ✔ | ✔ | ✔ | — | |
| 719 | +| Neo Geo CD | ✔ | ✔ | ✔ | — | — | |
| 720 | +| Neo Geo Pocket | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 721 | +| NES | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 722 | +| Nintendo 3DS | ✔ | ✔ | ✔ | — | — | |
| 723 | +| Nintendo DS | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 724 | +| Nintendo GameCube | ✔ | ✔ | ✔ | — | — | |
| 725 | +| Nintendo Wii | ✔ | ✔ | ✔ | — | — | |
625 | 726 | | Oric | ✔ | ✔ | ✔ | — | — | |
626 | | -| Thomson MO5 | ✔ | ✔ | ✔ | — | — | |
627 | | -| Watara Supervision | ✔ | ✔ | ✔ | — | ✔ | |
628 | | -| Color Computer | ✔ | ✔ | ✔ | — | — | |
629 | 727 | | Panasonic 3DO | ✔ | ✔ | ✔ | — | — | |
| 728 | +| PC Engine | ✔ | ✔ | ✔ | ✔ | ✔ | |
630 | 729 | | Philips CD-i | ✔ | ✔ | ✔ | — | — | |
631 | | -| Amiga CD32 | ✔ | ✔ | ✔ | — | — | |
632 | | -| Sega Saturn | ✔ | ✔ | ✔ | ✔ | — | |
| 730 | +| Sega 32X | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 731 | +| Sega CD | ✔ | ✔ | ✔ | ✔ | — | |
633 | 732 | | Sega Dreamcast | ✔ | ✔ | ✔ | ✔ | — | |
634 | | -| Nintendo GameCube | ✔ | ✔ | ✔ | — | — | |
635 | | -| Nintendo Wii | ✔ | ✔ | ✔ | — | — | |
636 | | -| Arcade (MAME) | — | — | — | — | — | |
637 | | -| Fairchild Channel F | ✔ | ✔ | ✔ | — | — | |
| 733 | +| Sega Game Gear | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 734 | +| Sega Master System | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 735 | +| Sega Saturn | ✔ | ✔ | ✔ | ✔ | — | |
| 736 | +| SNES | ✔ | ✔ | ✔ | ✔ | ✔ | |
| 737 | +| Thomson MO5 | ✔ | ✔ | ✔ | — | — | |
638 | 738 | | Tiger Game Com | ✔ | ✔ | ✔ | — | — | |
639 | | -| Memotech MTX | ✔ | ✔ | ✔ | — | — | |
| 739 | +| Virtual Boy | ✔ | ✔ | ✔ | — | ✔ | |
| 740 | +| Watara Supervision | ✔ | ✔ | ✔ | — | ✔ | |
640 | 741 |
|
641 | 742 | ## Localization |
642 | 743 |
|
|
0 commit comments