Rom-properties

GerbilSoft GerbilSoft
Dépôt créer le : 05/08/2017
Release du : 27/02/2026 v2.7.1
Forks: 41 Watcher: 0 616
Choisir une liste...
FR

ROM Properties Page shell extension

This shell extension adds a few nice features to file browsers for managing video game ROM and disc images.

License: GPL v2 AppVeyor Build status
Coverity Scan Build Status Crowdin
CodeQL CodeFactor codecov

no vibes, no bevis

v2.7.1

Windows Explorer showing Android APK packages and a 16-bit Windows application.

v2.7.1 is a bugfix release, mostly for issues on Windows for ARM systems.

Major additions in v2.7 include:

  • Android packages. Supports thumbnailing packages that use PNG icons. WebP icons are also supported if libwebp is installed.

    • Packages that use "adaptive icons" are not currently thumbnalied.
  • Nintendo 3DS: Z3DS compressed format is now supported.

  • Windows and GNOME Nautilus (and Caja and Nemo): In Details view, rom-properties now provides columns for some properties, including "Game ID" and "Title ID".

  • GNOME Nautilus (and Caja and Nemo): An emblem is now shown for files with potentially dangerous permissions.

  • Windows-specific changes:

    • Installers are now created using Inno Setup instead of the custom svrplus executable. Both Inno Setup 5 and 6 are used:
      • Inno Setup 5 is used for Windows XP, 2003, and Vista.
      • Inno Setup 6 is used for Windows 7, 8.x, 10, and 11.
    • ~~The arm64 and arm64ec DLLs have been combined using Microsoft's ARM64X format.~~ This isn't working properly; it will be reverted to ARM64-only for v2.7.1.
    • Add special handling for 16-bit executables and Windows 1.x/2.x icons. This is implemented using Microsoft's Detours library, and currently only works once rom-properties.dll is loaded in the Explorer process. (View the "ROM Properties" tab of a supported file to load it.)
    • Localization via GNU gettext is now available on ARM and ARM64.
  • Lots and lots of tiny bug fixes and improvements.

Translators wanted; if you can translate rom-properties from English to another language, check out the Crowdin project. (If you would like to translate to a language not currently listed on the Crowdin project page, file an issue here on GitHub with the requested language.)

See NEWS.md for a full list of changes in v2.7.1.

Feedback

This is a work in progress; feedback is encouraged. To leave feedback, you can file an issue on GitHub, or visit the Gens/GS IRC channel: irc://irc.badnik.zone/GensGS

Or use the Mibbit Web IRC client: http://mibbit.com/?server=irc.badnik.zone&channel=#GensGS

Installation

Currently, the ROM Properties Page shell extension is compatible with the following platforms and file browsers:

  • KDE Frameworks 5.x and 6.x (Dolphin and Konqueror)
  • XFCE (Thunar)
  • GNOME 3.x through 42 (Nautilus)
  • GNOME 43 (Nautilus)
  • MATE Desktop (1.18+) (Caja)
  • Cinnamon Desktop (Nemo)
  • Windows 7 (and later)

The following platforms are still compatible, but may not receive as much support:

  • KDE 4.x
  • Windows XP SP3, Windows Server 2003 SP2, Windows Vista
    • Note that WinInet in older versions of Windows does not support the newer encryption algorithms used by the online database hosts. To work around this, you will need to download an older version of cURL and a certificate bundle. This is available on the Releases page.

On Windows Vista and later, you will need the MSVC 2015-2026 runtime:

  • i386 (32-bit): https://aka.ms/vs/18/release/VC_redist.x86.exe
  • amd64 (64-bit): https://aka.ms/vs/18/release/VC_redist.x64.exe
  • arm32: https://rpdb.gerbilsoft.com/redist/VC_redist.arm.vs2017.exe
  • arm64: https://aka.ms/vs/18/release/vc_redist.arm64.exe

On Windows XP/2003 and earlier, you will need the MSVC 2015-2017 runtime:

  • i386 (32-bit): https://aka.ms/vs/15/release/VC_redist.x86.exe
  • amd64 (64-bit): https://aka.ms/vs/15/release/VC_redist.x64.exe

For instructions on compiling from source, see doc/COMPILING.md.

Linux

Install the relevant .deb package, depending on what desktop environment you are using and what your CPU is.

After installing, the plugin needs to be enabled in the Dolphin file browser:

  • Close all instances of Dolphin.
  • Start Dolphin.
  • Click Control, Configure Dolphin.
  • Click the "General" section, then the "Preview" tab.
  • Check the "ROM Properties Page" item, then click OK.
  • Enable previews in a directory containing a supported file type.

If installed correctly, thumbnails should be generated for the supported file type. You can also right-click a file, select Properties, then click the "ROM Properties" tab to view more information about the ROM image.

Windows

Extract the ZIP archive to a directory, then run install.exe. The installer requires administrator access, so click "Yes" if requested. In the installer, click the "Install" button to register the ROM Properties Page DLL.

Note that this will hard-code the location of the DLL files in the registry, so you may want to place the DLLs in a common location.

To uninstall the plugin, run install.exe again, then click the "Uninstall" button.

Current Desktop Environment Feature Support

  • ✅ = supported
  • ❌ = not implemented (yet)
  • ⛔ = OS or DE does not support this feature

| Feature | Windows XP | Windows Vista/7/8/10/11 | KDE | GNOME | XFCE | |:--------------------|:----------:|:-----------------------:|:---:|:-----:|:----:| | Properties tab | ✅ | ✅ | ✅ | ✅ | ✅ | | XAttrs tab | ✅ | ✅ | ✅ | ✅ | ✅ | | Thumbnails | ✅ | ✅ | ✅ | ✅¹ | ✅ | | "Dangerous" overlay | ❌ | ❌ | ✅ | ✅ | ⛔² | | Metadata | ✅ | ✅ | ✅ | ✅ | ✅ | | Columns | ✅ | ✅ | ⛔³ | ✅ | ⛔² | | Context menu⁴ | ✅ | ✅ | ✅ | ✅ | ✅ |

  • 1: GNOME uses sandboxing when it runs thumbnailing software, which may prevent rom-properties from downloading images from online databases.
  • 2: ThunarX's plugin infrastructure does not have any interfaces for adding custom file attributes, such as overlays and metadata, or to display custom columns.
  • 3: KDE has a fixed set of metadata properties and does not have any mechanism to extend it, outside of updates to KFileMetaData.
  • 4: Context menu entry for supported texture formats to convert the texture to PNG.

Current File Support Level

Game Consoles

| System | Properties Tab | Metadata | Internal Images | External Images | |:-------------------------:|:--------------:|:--------:|:---------------:|:---------------:| | ColecoVision | Yes | Yes | N/A | No | | Commodore 64/128 .CRT | Yes | Yes | N/A | Title | | Intellivision | Yes | Yes | N/A | No | | iQue Player ticket files | Yes | Yes | Icon, Banner | No | | Microsoft Xbox (XBE) | Yes | Yes | Icon | No | | Microsoft Xbox 360 (XEX) | Yes | Yes | Icon | No | | Microsoft Xbox 360 (STFS) | Yes | Yes | Icon | No | | Microsoft Xbox Game Discs | Yes | Yes | Icon | No | | NES | Yes | No | N/A | Title | | Super NES | Yes | Yes | N/A | Title | | Nintendo 64 | Yes | Yes | N/A | No | | Nintendo GameCube Discs | Yes | Yes | Banner | Disc, Covers | | Nintendo GameCube Banners | Yes | Yes | Banner | No | | Nintendo GameCube Saves | Yes | Yes | Icon | N/A | | Nintendo Wii Banners | Yes | Yes | No | No | | Nintendo Wii Discs | Yes | Yes | No | Disc, Covers | | Nintendo Wii WADs | Yes | Yes | Yes¹ | Title, Covers | | Nintendo Wii Saves | Yes | Yes | Yes | N/A | | Nintendo Wii SETTING.TXT | Yes | No | No | N/A | | Nintendo Wii U (Disc) | Yes | No | No | Disc, Covers | | Nintendo Wii U (Firmware) | Yes | No | Yes² | N/A | | Nintendo Wii U (NUS) | Yes | Yes | Icon | Disc, Covers | | Sega 8-bit (SMS, GG) | Yes | Yes | N/A | No | | Sega Mega Drive | Yes | Yes | N/A | Title | | Sega Dreamcast | Yes | Yes | Media | No | | Sega Dreamcast Saves | Yes | Yes | Icon, Banner | No | | Sega Saturn | Yes | Yes | N/A | No | | Sony PlayStation Discs | Yes | No | N/A | Covers | | Sony PlayStation EXEs | Yes | No | N/A | N/A | | Sony PlayStation Saves | Yes | Yes | Icon | N/A | | Sony PlayStation 2 Discs | Yes | Yes | N/A | Covers |

  • Sega Mega Drive includes Sega CD, 32X, and Pico.
  • 1: Internal images are only present in Wii DLC WADs.
  • 2: Custom icons based on the specific firmware type.

Handhelds

| System | Properties Tab | Metadata | Internal Images | External Images | |:-----------------------------:|:--------------:|:--------:|:---------------:|:---------------:| | Atari Lynx | Yes | Yes | N/A | No | | Bandai WonderSwan (Color) | Yes | Yes | N/A | Title | | Google Android | Yes | Yes | Icon | N/A | | J2ME | Yes | Yes | Icon | N/A | | Neo Geo Pocket (Color) | Yes | Yes | N/A | Title | | Nintendo Game Boy (Color) | Yes | Yes | N/A | Title | | Nintendo Virtual Boy | Yes | Yes | N/A | No | | Nintendo Game Boy Advance | Yes | Yes | N/A | Title | | Nintendo DS(i) | Yes | Yes | Icon | Covers, Box | | Nintendo DSi TADs* | Partial | No | No | No | | Nintendo 3DS | Yes | Yes | Icon | Covers, Box | | Palm OS | Yes | Yes | Icon | N/A | | Pokémon Mini | Yes | Yes | N/A | No | | Sony PlayStation Portable | Yes | Yes | Icon, Banner | No | | Tiger game.com | Yes | Yes | Icon | No |

  • The Nintendo DSi TAD parser supports development TADs that are normally imported using DSi Nmenu. It does not currently support DSi exports from retail systems.
  • The PSP parser supports both PSP game and UMD video discs, as well as several compressed disc formats: CISOv1, CISOv2, ZISO, JISO, and DAX.
  • The Android parser currently retrieves the largest icon available.

Texture Formats

| Texture Format | Properties Tab | Metadata | Internal Images | External Scans | |:------------------------:|:--------------:|:--------:|:---------------:|:--------------:| | ASTC container | Yes | Yes | Image | N/A | | Godot 3,4 .stex | Yes | Yes | Image | N/A | | Leapster Didj .tex | Yes | Yes | Image | N/A | | Khronos KTX | Yes | Yes | Image | N/A | | Khronos KTX2 | Yes | Yes | Image | N/A | | Microsoft DirectDraw DDS | Yes | Yes | Image | N/A | | Microsoft Xbox XPR | Yes | Yes | Image | N/A | | PowerVR 3.0.0 | Yes | Yes | Image | N/A | | Quite OK Image Format | Yes | Yes | Image | N/A | | Sega PVR/GVR/SVR | Yes | Yes | Image | N/A | | TrueVision TGA | Yes | Yes | Image | N/A | | Valve VTF | Yes | Yes | Image | N/A | | Valve VTF3 (PS3) | Yes | Yes | Image | N/A | | Windows icons/cursors | Yes | Yes | Image¹ | N/A |

  • 1: Icon thumbnailing is disabled for ICO, CUR, and EXE files to prevent conflicts with system icon handling.
    • ...with an exception for thumbnailing 16-bit Windows executables on 64-bit Windows by hooking the PrivateExtractIcons() functions.

Texture Codecs

  • Assorted linear RGB formats, including 15-bit, 16-bit, 24-bit and 32-bit per pixel.
    • Most of these formats have SSE2 and/or SSSE3-optimized decoders.
    • RGB9_E5 is supported, though it is currently converted to ARGB32 for display purposes. The decoder is also slow. (Contributions welcome.)
  • Dreamcast: Twiddled and Vector-Quantized
  • Nintendo DS: Tiled CI8 with BGR555 palette
  • Nintendo 3DS: Tiled and twiddled RGB565
  • GameCube: Tiled RGB5A3 and CI8 with RGB5A3 palette
  • S3TC: DXT1, DXT2, DXT3, DXT4, DXT5, BC4, and BC5 codecs.
    • GameCube 2x2-tiled DXT1 is supported in GVR texture files.
  • ETCn: ETC1, ETC2 (RGB, RGBA, RGB_A1), EAC
  • BC7: Supported in multiple texture file formats.
    • The implementation is somewhat slow. (Contributions welcome.)
  • PVRTC: Supported in multiple texture file formats.
    • PVRTC-II: Partially supported. The hard transition flag and images that aren't a multiple of the tile size are not supported.
  • ASTC: Supported in multiple texture file formats.

Audio Formats

| System | Properties Tab | Metadata | Internal Images | External Scans | |:-----------------------------:|:--------------:|:--------:|:---------------:|:--------------:| | Atari 8-bit SAP audio | Yes | Yes | N/A | N/A | | Atari ST SNDH audio | Yes | Yes | N/A | N/A | | CRI ADX ADPCM | Yes | Yes | N/A | N/A | | Commodore 64 SID Music | Yes | Yes | N/A | N/A | | Game Boy Sound System | Yes | Yes | N/A | N/A | | Game Boy Ripped | Yes | N/A | N/A | N/A | | Nintendo 3DS BCSTM and BCWAV | Yes | Yes | N/A | N/A | | Nintendo Sound Format | Yes | Yes | N/A | N/A | | Nintendo Wii BRSTM | Yes | Yes | N/A | N/A | | Nintendo Wii U BFSTM | Yes | Yes | N/A | N/A | | Portable Sound Format | Yes | Yes | N/A | N/A | | Super NES SPC Format | Yes | Yes | N/A | N/A | | Video Game Music | Yes | Yes | N/A | N/A |

Media Formats

| System | Properties Tab | Metadata | Internal Images | External Scans | |:------------------------------:|:--------------:|:--------:|:---------------:|:--------------:| | Commodore DOS Disk Images | Yes | Yes | GEOS* | N/A | | ISO-9660 Disc Images | Yes | Yes | Icon | N/A | | Windows Image (.wim) | Yes | No | N/A | N/A |

  • Commodore DOS currently includes the 2040, 3040, 4040, 8050, 8250, 1540/1541, 1571, and 1581 disk drives, in D64, D71, D80, D82, D81, D67, G64, and G71 formats.
    • File icons for GEOS files are supported.
  • UDF disc format is not currently supported. Hybrid disc images that have both UDF and ISO-9660 data structures will be handled as ISO-9660.
  • CD-i and High Sierra disc images are handled by the ISO-9660 disc image parser.

Other

| System | Properties Tab | Metadata | Internal Images | External Scans | |:------------------------------:|:--------------:|:--------:|:---------------:|:--------------:| | Executable and Linkable Format | Yes | No | N/A | N/A | | PUC Lua binaries | Yes | No | N/A | N/A | | Mach-O Binaries | Yes | No | N/A | N/A | | Nintendo amiibo | Yes | No | N/A | Media | | Nintendo Badge Arcade | Yes | Yes | Image | N/A | | Windows/DOS Executables | Yes | Yes | Icon¹ | N/A |

  • 1: Icon thumbnailing is disabled for ICO, CUR, and EXE files to prevent conflicts with system icon handling.

General notes for all formats:

  • Internal image refers to artwork contained within the ROM and/or disc image. These images are typically displayed on the system's main menu prior to starting the game.
    • "N/A" here means the ROM or disc image doesn't have this feature.
    • "No" indicates that the feature is present but not currently implemented.
  • External scans refers to scans from an external database, such as GameTDB.com for GameCube and Wii.
    • "No" indicates no database is currently available for this system.
    • Anything else indicates what types of images are available.
    • For amiibo, "media" refers to the amiibo object, which may be a figurine, a card, a plush, or a wooden block.
  • Windows executables may contain multiple icon sizes. Support for Windows icons will be added once support for multiple image sizes is added.
  • Sega 8-bit only supports ROM images with a "TMR SEGA" header.

A configuration program, rp-config, is available to configure rom-properties using a graphical interface. This program allows you to configure which images will be used for thumbnails on each system, as well as other functionality.

External Media Downloads

Certain parsers support the use of external media scans through an online database, e.g. GameTDB.com. This is enabled by default, but you can customize which scans are downloaded for which systems by running the configuration program, rp-config.exe.

Downloaded images are cached to the following directory:

  • Linux: ~/.cache/rom-properties/
  • Windows XP: %LOCALAPPDATA%\rom-properties\cache
  • Windows Vista+: %USERPROFILE%\AppData\LocalLow\rom-properties\cache

The directory structure matches the source site, so e.g. a disc image of Super Smash Bros. Brawl would be downloaded to ~/.cache/rom-properties/wii/disc/US/RSBE01.png. Note that if the download fails for any reason, a 0-byte dummy file will be placed in the cache, which tells the shell extension not to attempt to download the file again. [FIXME: If the download fails due to no network connectivity, it shouldn't do this.]

If you have an offline copy of the GameTDB image database, you can copy it to the ROM Properties Page cache directory to allow the extension to use the pre-downloaded version instead of downloading images as needed.

Decryption Keys

Some newer formats, including Wii disc images, have encrypted sections. The shell extension includes decryption code for handling these images, but the keys are not included. To install the keys, create a text file called keys.conf in the rom-properties configuration directory:

  • Linux: ~/.config/rom-properties/keys.conf
  • Windows: %APPDATA%\rom-properties\keys.conf

The keys.conf file uses INI format. An example file, keys.conf.example, is included with the shell extension. This file has a list of all supported keys, with placeholders instead of the actual key data. For example, a keys.conf file with the supported keys for Wii looks like this:

[Keys]
rvl-common=[Wii common key]
rvl-korean=[Wii Korean key]

Replace the key placeholders with hexadecimal strings representing the key. In this example, both keys are AES-128, so the hexadecimal strings should be 32 characters long.

NOTE: If a key is incorrect, any properties dialog that uses the key to decrypt data will show an error message instead of the data in question.

Nintendo DS Secure Area

To encrypt or decrypt the Nintendo DS Secure Area, the Blowfish key must be named nds-blowfish.bin and placed in the same directory as keys.conf.

MD5sum: c08c5afd9c6d9530817cd2033e3864d7

Unsupported File?

If you have a file that you believe should be supported by ROM Propeties, or would like to see support added for a new type, file an issue on GitHub: https://github.com/GerbilSoft/rom-properties/issues

License

ROM Properties is licensed under the GNU General Public License v2. Some bundled components have other licenses:

  • basisu_astc: Apache License 2.0
  • googletest: BSD 3-clause
  • GCR_CMake: GPL-3
  • inih: BSD-3-clause
  • libmspack-xenia: LGPL-2.1
  • lz4: BSD 2-clause for lib/; GPLv2 for others
  • microtar: MIT
  • minizip-ng: zlib
  • PowerVR: MIT
  • rapidjson: MIT
  • PugiXML: MIT
  • unice68: GPL-3
  • uniwidth: LPGL-2.1+
  • zlib-ng: zlib
  • zstd: BSD 3-clause

GCR_CMake is only used at build time, and is only necessary for the GTK builds, so I believe it does not make the entire program GPL-3 licensed.

unice68 is linked in during compile time, but can be disabled. All builds with unice68 are therefore GPL-3+. unice68 is only used for Atari ST SNDH files, so this can be disabled if a GPL-2+ build is desired: -DENABLE_UNICE68=OFF

On Windows, the following bundled components are also used:

  • GNU gettext: GPL-3+
  • libwin32darkmode: GPL-3+

While the use of gettext can be disabled with -DENABLE_NLS=OFF, libwin32darkmode is currently always enabled, so Windows builds are always GPL-3+ at the moment.

The original version of the "Happy Wii U" icon used for Wii U firmware binaries was provided by Vixy under CC-BY licensing. The original icon was modified to fit in a 48x48 icon frame and to provide additional information, e.g. retail vs. development (green), and to show an SD card for sdboot.

The flag icons used for region/language selection are based on flag icons from Twemoji 12.0.1. Copyright 2019 Twitter, Inc and other contributors; licensed under CC-BY 4.0.

Credits

Developers

  • @GerbilSoft: Main developer.
  • @DankRank: Contributor, bug tester.
  • @CheatFreak: Bug tester, amiibo support.

Translators

  • @DankRank: Russian, Ukrainian
  • @NullMagic2: Brazilian Portuguese
  • @Amnesia1000: Spanish
  • Slippy: German
  • @CyberYoshi64: German
  • @maschell: German
  • @WebSnke: German
  • @TheOneGoofAli: Russian
  • @NotaInutilis: French
  • @xxmichibxx: German
  • @ThePBone: German
  • @ionuttbara: Romanian
  • @MaRod92: Italian
  • Motwera: Arabic
  • Chipsum: Arabic
  • spencerchris8080: Spanish
  • @NoNameWasDefined: French

Other Contributions

[This list is incomplete; if you think you should be listed here, file an issue.]

  • @Tpot-SSL: Assistance with the game.com implementation.
  • Pixy: Original "Happy Wii U" icon for Wii U firmware images. (License: CC-BY-4.0)

Websites

Contributeurs GitHub

ccawley2011
ccawley2011
22 contributions
GerbilSoft
GerbilSoft
13639 contributions
DankRank
DankRank
132 contributions
ecumber
ecumber
9 contributions
Amnesia1000
Amnesia1000
5 contributions
Clownacy
Clownacy
4 contributions
TheEssem
TheEssem
1 contributions
MarioMasta64
MarioMasta64
1 contributions
Jhynjhiruu
Jhynjhiruu
1 contributions
Kesefon
Kesefon
1 contributions