Skip to content

Latest commit

 

History

History
1432 lines (1300 loc) · 72.8 KB

NEWS.md

File metadata and controls

1432 lines (1300 loc) · 72.8 KB

Changes

v2.2.1 (released 2023/07/30)

  • New parser features:

    • EXE: Add IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION.
      • Fixes #388: PE subsystems list missing Windows Boot Application
        • Reported by @Wack0.
  • Bug fixes:

    • JPEG images using the Exif container are now detected properly. This fixes loading certain cover art from the PS1/PS2 section of RPDB.
      • Fixes #386: Some ps2 games never get their boxart
        • Reported by @Masamune3210.
    • KDE: Fix an issue where achievements are checked when the properties dialog is opened instead of when the "ROM Properties" tab is selected.
    • GameCube: Un-break partial support for WIA/RVZ images.
      • This was broken in v2.2.
      • Fixes #389: Gamecube Property sheet is blank
        • Reported by @Masamune3210.
    • Windows: Don't square thumbnails for anything on Windows Vista and later.
      • On Windows XP, we'll still square the icons.
      • Thumbnails for images that were taller than they were wide appeared squished with squaring enabled, even though the generated image is correct. Not sure why this is happening...
      • Windows XP had issues with non-square icons, but Windows 7 seems to be handling them without any problems.
      • Fixes #385: Ratio of ps2 longbox thumbnails looks wrong?
        • Reported by @Masamune3210.
    • KDE: Fix metadata extraction. v2.2 added JSON plugin metadata to the forwarder plugins. Unfortunately, KFileMetaData uses a completely different format than other KDE plugins, which broke metadata extraction.
      • This was broken in v2.2.
    • NES: Update mappers; Fix detection of mapper 458, submappers 2 and 3.
  • Other changes:

    • Preliminary support for Windows on ARM. The Windows distribution includes DLLs compiled for ARM, ARM64, and ARM64EC, and svrplus has been updated to register these DLLs if an ARM system is detected. Note that svrplus has not been tested on any ARM systems yet.

v2.2 (released 2023/07/01)

  • New features:

    • PlayStationDisc: Added external cover images using RPDB, mirrored from the following GitHub repositories:
    • Extended attribute viewer tab. Supports viewing MS-DOS and (on Linux) EXT2 attributes on supported file systems, plus POSIX extended attributes.
      • On Windows, alternate data streams are displayed as extended attributes.
      • Windows xattr functionality currently does not work on Windows XP.
    • KDE UI frontend now only uses JSON loading when compiled with KDE Frameworks 5.89.0 or later.
    • GameCube: Display the Wii update partition date if available.
      • Requested by @johnsanc314.
  • New parser features:

    • EXEData: Fix ordering of Alpha64 so binaries are detected properly.
      • Fixes #380: Alpha64 binaries are showing up as Unknown
        • Reported by @XenoPanther.
  • Bug fixes:

    • WiiWAD: Add application/x-doom-wad for compatibility with some systems that assume all .wad files are Doom WADs.
    • WiiWAD: application/x-dsi-tad -> application/x-nintendo-dsi-tad
    • KDE: Revert RpQImageBackend registration removal in RomThumbCreator. This is needed when using KDE Frameworks 5.99 or earlier, since the ThumbCreator interface is not considered a KPlugin.
      • Fixes #372: KF5 frontend crashes when displaying thumbnails (rp_image_backend doesn't get initialized)
      • Merged #374: [kde] register RpQImageBackend when RomThumbCreator is used
        • Reported and submitted by @DankRank.
    • KDE: Fix split debug install paths.
      • Merged #373: [kde] Fix split debug install paths.
        • Submitted by @DankRank.
    • DirectDrawSurface: Fix detection of BC4S and BC5S, but disable signed texture decoding right now because it doesn't currently work.
    • DirectDrawSurface: Fix detection for some L8 and A8L8 textures, as well as some uncompressed textures that have a DXGI format set but not the legacy bitmask values.
    • Windows: The "Convert to PNG" context menu item now uses the system PNG file icon. Note that icon transparency is currently broken.
    • GodotSTEX: Update v4 support for changes in the final version of Godot 4:
      • PVRTC pixel formats have been removed.
      • ETCn no longer has swapped R/B channels.
      • Fix format flags not showing up at all.
    • GameCube: Show the raw version number of unrecognized Wii Menu versions, and fix the raw version number for 4.2K.
      • Reported by @johnsanc314.
    • GameCube: Handle standalone Wii update partitions containing Incrementing Values.
      • Reported by @johnsanc314.
    • DMG: Handle the 'H' cartridge HW type for IR carts. (HuC1, HuC3)
      • Merged #359: Update DMG.cpp
        • Reported by @MarioMasta64.
    • CacheTab: Allow deletion of "version.txt", used by the Update Checker.
    • Windows rp-config: Fix checkbox states when toggling external image downloads.
  • Other changes:

    • EXE: Don't show import/export tables for .NET executables, since they only have a single import, MSCOREEE!_CorExeMain.
    • New unit test RomHeaderTest that runs rpcli against a set of known ROM headers and reference text and JSON output. Currently has headers for MegaDrive (including 32X and Pico), N64, NES, Sega 8-bit (SMS and GG), SNES, SufamiTurbo, DMG, and GameBoyAdvance.
    • libromdata's SOVERSION was bumped to 3 due to, among other things, the librptext split.

v2.1 (released 2022/12/24)

  • New features:

    • Initial support for Nautilus 43 (GTK4). Nautilus 43 reworked the property page interface so it only supports key/value pairs, so a lot of the functionality (lists, bitfields, images) isn't implemented at the moment.
      • Fixes #332: Compat with GTK4 and Nautilus 4.x
        • Reported by @Amnesia1000.
    • rp-config: The GTK, KDE, and Windows UI frontends now have an update checker in the About tab. When you click the About tab, it will compare the current version against the version listed on the RPDB server. If the current version is older, a link will be provided to the GitHub releases page.
    • Metered connections are now detected on Linux systems when using NetworkManager and on Windows 10 v2004 and later. rom-properties can be configured to either download lower-resolution images or no images when on metered connections, separately from the unmetered setting.
    • rp-stub now accepts a thumbnail size of 0 to indicate a "full-size thumbnail" is requested.
    • Added a right-click option for "Convert to PNG" for supported texture formats, e.g. DirectDraw Surfaces and Khronos KTX/KTX2.
  • New parser features:

    • KhronosKTX2: Add support for RG88 textures.
    • KhronosKTX2: Textures with the KTXswizzle attribute set will have the color channels swizzled as specified. Includes SSSE3-optimized swizzling.
  • Bug fixes:

    • ELF: The "TLS" symbol type was missing, resulting in an off-by-one error for some symbol types.
      • Merged #359: [libromdata] ELFPrivate::addSymbolFields(): fix the symbol type names
        • Submitted by @DankRank.
    • xdg: Install rp-config.desktop correctly.
      • Fixes #367: "rp-config.desktop" file error
        • Reported by @Amnesia1000.
    • Some text fields in certain ROMs that were documented as Latin-1 contain C0/C1 control codes, which causes problems with rpcli. Handle these fields as cp1252 instead.
      • Fixes #365: Issues parsing some DS ROMs
        • Reported by @mariomadproductions.
    • [gtk] rp-config: Fix saving if the files don't exist initially.
      • Fixes #368: rp-config does not save configuration and keys in Manjaro Gnome.
        • Reported by @Amnesia1000.
    • [xdg] rom-properties.xml: Add magic strings for amiibo files.
      • Fixes #370: Amiibos without thumbnails (Gnome)
        • Reported by @Amnesia1000.
    • Thumbnail downscaling was never implemented. It's implemented now, so thumbnail caching should work better on some systems.
    • Thumbnail bilinear filtering should have been enabled for 8:7 aspect ratio correction, but it wasn't. It is now. This affects SNES and some Mega Drive thumbnails.
    • xdg: Add inode/blockdevice to re-enable physical CD/DVD support on Linux.
      • v2.0 removed application/octet-stream, which otherwise covered this use case.
    • [gtk] rp-config: Achievement unlock times were incorrectly shown in UTC. They're now shown in the local timezone.
  • Other changes:

    • libromdata's SOVERSION was bumped to 2 due to an ABI change in librpfile's MemFile and VectorFile classes.
    • Bundled zlib-ng: Fix for systems with a CPU that supports AVX2 but an OS that doesn't, e.g. Windows XP.
      • Fixes #361: Crash in rp-config on Windows XP
      • Merged #362: zlib-ng: Check that the OS supports saving the YMM registers before enabling AVX2
        • Reported and submitted by @ccawley2011.

v2.0 (released 2022/09/24)

  • New features:

    • The configuration UI has been ported to GTK. Users of GTK-based desktops will no longer need to install the KDE4 or KF5 UI frontends in order to use rp-config.
    • libromdata is now compiled as a shared library on Windows and Linux. This means an extra DLL (romdata-1.dll) or SO (libromdata.so.1) will be included with the distribution. The advantage of splitting it out is that all the UI frontends are now significantly smaller.
      • WARNING: Binary compatibility between releases is NOT guaranteed. The SOVERSION will be incremented if the ABI is known to have broken between releases, but I can't guarantee that it will always remain compatible.
      • IFUNC resolvers now use gcc's built-in CPU flag functions because the regular rom-properties functions aren't available due to PLT shenanigans. IFUNC now requires gcc-4.8+ or clang-6.0+.
    • Many large string tables have been converted from arrays of C strings to a single string with an offset table using Python scripts. This reduces memory usage by eliminating one pointer per string, and it reduces the number of relocations, which improves startup time.
      • DirectDrawSurface formats were previously converted manually, but there were errors in the ASTC formats, so DDS has been converted to use a Python script and these errors are fixed.
    • rpcli: New option '-d' to skip RFT_LISTDATA fields with more than 10 items. Useful for skipping e.g. Windows DLL imports/exports.
  • New parsers:

    • Atari7800: Atari 7800 ROM images with an A78 header.
  • New parser features:

    • ELF: OSABI 102 (Cell LV2) is now detected.
    • DirectDrawSurface: Support non-standard ASTC FourCCs.
    • GameCube, PSP: Add missing MIME types. Among other things, this fixes missing metadata for GameCube CISO files.
    • EXE: Detect hybrid COM/NE executables, i.e. Multitasking DOS 4.0's IBMDOS.COM.
    • EXE: List DLL exports and imports. (PE, NE)
      • Fixes #348: Add an dll import/export function tab?
        • Reported by @vaualbus.
      • Merged #349: EXE PE: Exports/Imports tabs
        • Submitted by @DankRank.
      • Merged #350: EXE NE: Entries tab
        • Submitted by @DankRank.
      • Merged #355: Follow-up fixes for ne-entries
        • Submitted by @DankRank.
      • Merged #356: EXE NE: imports tab
        • Submitted by @DankRank.
    • ELF: List shared library names and symbol imports.
      • Merged #357: ELF dynamic stuff and symbols
        • Submitted by @DankRank.
      • Merged #358: More columns in ELF symbol tables
        • Submitted by @DankRank.
  • Bug fixes:

    • Lua: Fix a crash on Windows where systemName() sometimes returned an invalid pointer when using the GUI frontend.
    • Nintendo3DS:
    • N64:
      • OS versions are major.minor, e.g. 2.0, not 20. In addition, there should not be a space between "OS" and the number, e.g. "OS2.0K".
        • Fixes #339, reported by @slp32.
      • Don't check the clock rate when checking the magic number.
        • Fixes detection of e.g. Star Fox 64 and Cruis'n USA, which have a value set for clock rate instead of using the system default.
        • Fixes #340, reported by @slp32.
      • Display the ROM header clock rate. If 0, "default" will be shown.
    • ELF: Some byteswaps were missing, which may have broken reading certain big-endian ELFs on little-endian and vice-versa.
    • Linux: Fix walking the process tree to detect the desktop environment. This wasn't working properly due to two variables being named ret. This has been broken since v1.7.
    • GameCube: Improve the text encoding heuristic for BNR1 metadata.
    • XboxXPR: Handle XPRs with non-power-of-two image dimensions. Forza Motorsport (2005) uses these textures extensively. Some textures don't have the usual image size fields filled in, resulting in no image; others have incorrect values, resulting in a broken image.
      • This was reported by Trash_Bandatcoot.
    • Linux: Don't attempt to fopen() a pipe or socket. This can hang, since fopen() doesn't pass O_NONBLOCK.
      • Fixes #351, reported by @IntriguingTiles.
    • Windows: Fixed a crash in Java applications when using Java's file open dialog in some cases, e.g. Ghidra.
      • Fixes #352, reported by @RibShark.
    • rpcli: Fix table widths when printing strings that contain Unicode code points over U+0080 and/or fullwidth characters.
      • Fixes #353, reported by @DankRank.
    • GameCubeSave: Trim trailing CRs. (TMNT Mutant Melee [GE5EA4])
    • EXE: Fix a segmentation fault when viewing 16-bit EXEs compiled using Visual Basic.
      • This broke in v1.9.
    • PlayStation: Fix detection of 2352-byte/2448-byte CD images.
      • This broke in v1.8.
      • Fixes #354, reported by @DankRank.
  • Other changes:

    • Windows: DLL loading has been hardened by using LoadLibraryEx().
      • This is supported on Windows 8 and later with no adjustments.
      • On Windows Vista or Windows 7, this requires KB2533623.
      • Not supported on Windows XP, so it will fall back to the previous DLL loading behavior.
    • Metadata: The Description property is now used for descriptions instead of the Subject property where available.
    • Linux: Improved startup notification support. Tested and working with KDE on X11 and Wayland, and GTK3/GTK4 on Wayland. GTK3/GTK4 on X11 doesn't seem to be handling it properly, but that might just be an issue with it running on KDE instead of a GTK-based desktop environment.
    • Linux: The .desktop files no longer list application/octet-stream as a supported MIME type. The system MIME database should have proper entries for all supported files. For unsupported file, an XML file is included with custom MIME type definitions.

v1.9 (released 2022/05/22)

  • New features:

    • OpenMP can now be used to improve decoding performance for some image codecs, including ASTC and BC7.
    • A .desktop file has been added for rp-config on Linux systems, which adds it to the applications menu on most desktop environments.
  • New parsers:

    • GodotSTEX: Godot 3 and 4 texture files. Supports most linear encodings, S3TC, BC4, BC5, RGTC, BC7, PVRTC-I, ETC1, ETC2, and ASTC. Note that ASTC isn't officially supported; the format value 0x25 is used by Sonic Colors Ultimate. (0x25 is used for a Basis Universal format in Godot 4.)
    • ASTC: ASTC texture format. This is a minimal header format for textures encoded using ASTC.
    • CBMCart: Commodore ROM cartridges, using VICE 3.0's .CRT format. Supports external title screen images for C64 and C128 cartridges.
    • Lua: PUC LUA binary format (.lub).
  • New parser features:

    • Added ASTC decoding. All texture formats that support ASTC have been updated to allow decoding ASTC textures. (HDR is not supported, and the LDR decoder is rather slow.)
    • The GBS parser now partially supports the older GBR format.
    • GameCube: IOS version is now shown for Wii discs.
    • EXE: Parse timestamps in early NE executables.
    • Xbox_XBE: Display "Init Flags".
    • NES: Improved nametable mirroring display.
  • New compressed texture formats:

    • EAC R11 and RG11, which uses ETC2's alpha channel compression for 1-channel and 2-channel textures. Note that the channels are truncated from 11-bit to 8-bit for display purposes, and signed int versions might not be displayed correctly.
  • Bug fixes:

    • EXE:
      • Improve runtime DLL detection in some cases.
      • Improve detection of certain EFI executables.
    • SNES: Fix detection of games that declare usage of the S-RTC chip in the ROM header. (sd2snes menu)
    • Windows: Don't edit registered Applications when adding icon handling registry keys. If a program is associated with an emulator filetype, that program's icon will be used for IExtractIcon, but the rom-properties thumbnail will still be used for thumbnail previews. This should fix some issues with Windows 8/10/11 file associations.
      • See issues: #241, #318, #319
    • Windows: Don't square images before returning them for IExtractImage and IThumbnailProviders. Icons are still squared for IExtractIcon, since Windows doesn't really like non-square icons.
    • PVRTC-I requires power-of-2 textures. We're currently using a slightly-modified PVRTC-I decoder for PVRTC-II as well, so we have to enforce power-of-2 textures for PVRTC-II for now.
    • DXT3 decoding now always uses the 4-color (c0 > c1) palette. Previously, I implemented this as (c0 ≤ c1) due to misleading documentation, which didn't work correctly, so I disabled it entirely. Implementing it as (c0 > c1) works correctly with the existing test images.
    • KDE: Work around a KIO issue where thumbnails with a stride not equal to width * bytespp are broken. Usually only shows up in 24-bit images with unusual widths, e.g. hi_mark_sq.ktx .
  • Other changes:

    • Significantly improved the peformance of the RGB9_E5 decoder.

v1.8.3 (released 2021/08/03)

  • Bug fixes:

    • Fix a division by zero when reading PSP CISO/CSO images. This bug was reported by @NotaInutilis in issue #286.
    • Fix a crash in the BC7 and PVRTC image decoders if the image dimensions were not a multiple of the tile size.
    • rp-download: Allow clone3(), which is needed on systems that have by glibc-2.34.
  • Other changes:

    • GTK+ frontends now use libgsound if available.
    • Experimental support for GTK4 has been added. It's not available by default (configuration is commented out in CMake), since none of the major file browsers support GTK4 yet.

v1.8.2 (released 2021/07/19)

  • Bug fixes:
    • rp-download: Allow the rt_sigprocmask() syscall. This is needed on Ubuntu 20.04 and later, and possibly other systems that use systemd.
      • This was reported by gold lightning.

v1.8.1 (released 2021/07/19)

  • Bug fixes:

    • Fix svrplus.exe not detecting the MSVC runtime at all.
      • Fixes #312, reported by @SCOTT0852.
    • Fix tinyxml2.dll packaging in the Windows build.
      • Fixes #313, reported by @ccawley2011.
    • Fix delay-loading of tinyxml2.dll when viewing Windows executables.
      • Fixes #313, reported by @ccawley2011.
  • Other changes:

    • Updated the amiibo database to be current as of 2021/07/14.

v1.8 (released 2021/07/18)

  • New features:

    • An achievements system has been added. By viewing certain types of files or performing certain actions, achievements can be unlocked. Achievements can be viewed in rp-config.
    • Enabled sorting on all RFT_LISTDATA fields.
    • Improved automatic column sizing in RFT_LISTDATA fields on all platforms.
      • Windows: Significantly improved column sizing by overriding ListView's default sizing function, which doesn't work properly for strings that have multiple lines.
      • GTK+: Combined the icon/checkbox column with column 0.
    • CD-ROM: Added support for 2448-byte sector images. Currently supported by the generic ISO parser and PlayStationDisc. Support for other systems may be added later on, but subchannels generally aren't used on Sega Mega CD, Sega Saturn, Sega Dreamcast, or PlayStation Portable.
    • New Spanish translation (es_ES), contributed by @Amnesia1000.
    • KDE: rp-config now has a Thumbnail Cache tab, similar to the Windows version.
    • rp-config: The default language for images for PAL titles downloaded from GameTDB can now be set.
  • New parsers:

    • WonderSwan: Bandai WonderSwan (Color) ROM images. Supports external title screens using RPDB.
    • TGA: TrueVision TARGA image format. Most encodings are supported; some have alpha channel issues. Thumbnailing is enabled on Windows but not Linux, since most Linux desktop environments support TGA.
  • New parser features:

    • NGPC: Added external title screens using RPDB.
    • Xbox360_XDBF:
      • Added metadata extraction.
      • Added (partial) support for GPD files. Avatar Awards aren't parsed in GPD files at the moment.
    • Xbox360_XEX: System firmware XEXes use the XEX1 key. This is indicated using the "Cardea Key" flag.
      • Fixes #273, reported by @Masamune3210.
    • GameCom: Added support for RLE-compressed icons. "Game.com Internet" and "Tiger Web Link" are the only two titles known to use them.
      • Fixes #278, reported by @simontime.
    • MegaDrive:
      • Detect Teradrive ROMs. Some extensions are also detected, but are not displayed at the moment.
      • Handle the 'W' region code as used by EverDrive OS ROMs.
      • Significantly improved Sega Pico detection, including handling non-standard system names and region codes.
      • Added more I/O devices. The I/O device field is now a string instead of a bitfield, since most games only support one or two devices.
      • Handle some more unusual ROM headers, including "early" headers that have 32 bytes for titles instead of 48, and some incorrect region code offsets.
      • Support for external title screens has been added using RPDB.
      • Added metadata properties. Currently supports publisher and title. Domestic title is used if available; otherwise, export title is used.
      • Improved detection of Sega Pico ROM images.
    • Amiibo: Split the database out of the C++ code and into a database file.
    • Xbox360_STFS: Add two more file extensions for some Bethesda games:
      • Fallout: .fxs
      • Skyrim: .exs
      • Fixes #303, reported by @60fpshacksrock.
    • KhronosKTX, KhronosKTX2: Fix thumbnailing registration on Windows.
    • ISO:
      • Basic support for CD-i images. (PVD only)
      • Basic support for El Torito boot image detection. Currently only displays if x86 and/or EFI boot images are present, but not any specifics.
  • Bug fixes:

    • GameCube: Detect incrementing values partitions in encrypted images.
      • Fixes #269, reported by @Masamune3210.
    • KDE:
      • Ensure the "Thumb::URI" value is urlencoded.
      • Fixed a massive file handle leak. Affects v1.5 and later.
    • Fixed a potential crash when loading an invalid PNG image.
    • Windows: Fixed a column sizing issue that caused XDBF Gamerscore columns to be too wide.
    • Xbox360_STFS: Fixed a crash that happened in some cases.
    • XboxDisc: Fix an edge case where XGD3 discs that have a video partition whose timestamp matches an XGD2 timestamp are not handled correctly.
      • Affects: "Kinect Rush a Disney Pixar Adventure" (4D5309B6)
      • Fixes #291, reported by @Masamune3210.
    • EXE: Don't show the "dangerous permission" overlay for Win32 executables that don't have a manifest.
    • NintendoDS:
      • Add "EN" fallback for external artwork from GameTDB.
      • Preserve the RSA key area for "cloneboot" when trimming ROMs.
    • Re-enabled localization for texture parsers. This was broken with the conversion to librptexture in v1.5.
    • rpcli: Fix a segfault with JSON output on MD ROMs that have empty string fields.
    • NES: Improved internal footer detection.
  • Security Notes:

    • pngcheck-2.3.0 was previously used to validate PNG images before loading them with libpng. New security fixes for pngcheck were released in December 2020 with the caveat that because the code was crufty and unmaintained, there may still be security issues. Because of this, pngcheck has been removed entirely. Other security hardening methods, such as running image decoders in a separate low-privilege process, may be implemented in the future.

v1.7.3 (released 2020/09/25)

  • Bug fixes:
    • GameCube: Fix incorrect GCZ data size checks.
      • This really fixes #262, reported by @Amnesia1000.

v1.7.2 (released 2020/09/24)

  • Bug fixes:

    • PlayStationDisc: Fix a crash when parsing discs that don't have SYSTEM.CNF but do have PSX.EXE.
      • Fixes #258, reported by @TwilightSlick.
    • GameCube: Register the ".gcz" and ".rvz" file extensions on Windows.
      • Fixes #262, reported by @Amnesia1000.
  • Other changes:

    • Xbox360_XEX: Removed the "Savegame ID" field. This seems to be 0 in all tested games.
      • Fixes #272, reported by @Masamune3210.

v1.7.1 (released 2020/09/21)

  • Bug fixes:
    • Windows: Fixed a last-minute bug that caused field values in the property page to sometimes be completely invisible.
      • This bug was reported by @Whovian9369.

v1.7 (released 2020/09/20)

  • New features:

    • An "Options" button is now present in the property page. The Options button allows for exporting the ROM properties in text and JSON format, using the same mechanism as rpcli's output.
    • A new "ROM operations" subsystem allows for certain operations to be performed on supported ROM images. Currently, Nintendo DS supports trimming and untrimming ROMs, and encrypting and decrypting the Secure Area. These operations are available in the "Options" menu. Note that modifying the Secure Area requires having the Nintendo DS Blowfish key as nds-blowfish.bin in the ROM Properties configuration directory.
    • Nintendo3DS: New ROM operation for extracting SRLs from DSiWare CIAs.
  • New parsers:

    • PSP: PlayStation Portable disc images. Supports both PSP game and UMD video discs in ISO, CISOv1, CISOv2, ZISO, JISO, and DAX formats.
      • PARAM.SFO and firmware updates aren't parsed yet.
  • New parser features:

    • Dreamcast: Added metadata properties.
    • NintendoDS:
      • Use the full title in metadata properties if available.
      • Indicate the specific Security Data that's present.
    • Nintendo3DSFirm: Added some more homebrews and show sighax status.
    • DMG: Added support for ROMs with 512-byte copier headers.
    • WiiWAD: Preliminary support for Nintendo DSi TAD packages as used by DSi Nmenu. These have the same basic format as WADs, including ticket and TMD, but the contents are different.
    • WiiWAD: New ROM operation for extracting SRLs from DSi TAD packages.
    • EXE: Show the "dangerous permissions" overlay for Windows executables that have requestedExecutionLevel == requireAdministrator.
  • Bug fixes:

    • PlayStationDisc:
      • Allow discs that lack SYSTEM.CNF if they have PSX.EXE.
      • Handle boot filenames with two backslashes.
    • KDE: Fix thumbnailing of files with '#' and/or '?' in their filenames.
    • Win32: Default InfoTip value incorrectly used PreviewDetails.
    • Win32: Register PreviewDetails and InfoTip per extension instead of using a ProgID. Using a ProgID breaks .cmd files on Windows 8.
      • This fixes issue #242, reported by @mariomadproductions.
    • DMG: SRAM bank size is 8 KB, not 16 KB.
      • This fixes issue #246, reported by @Icesythe7.
    • PlayStationDisc: Fix a file handle leak.
      • This fixes issue #247, reported by @Masamune3210.
    • IsoPartition, XDVDFSPartition: Fix some more file handle leaks.
      • This fixes issue #249, reported by @Masamune3210.
    • WiiPartition: Fixed a potential memory corruption issue when reading a partial block from an unencrypted disc image.
    • WiiWAD: Animated icons are now reported correctly by rpcli.
    • KDE: Fixed a memory leak in the overlay icon handler. This has been present since overlay icons were introduced in v1.4.
    • KDE: Split the .desktop files into one for ThumbCreator and one for KPropertiesDialog. This fixes e.g. Windows EXE thumbnailing, which is supported by another plugin on KDE, but not by rom-properties; however, rom-properties does support EXE for properties functions. With both ThumbCreator and KPropertiesDialog in one .desktop file, all MIME types were taken over by rom-properties for ThumbCreator, even if those types weren't supported.
    • XboxDisc: Fixed broken detection for some XGD3 discs, including "2014 FIFA World Cup".
      • This fixes issue #253, reported by @Masamune3210.
  • Other changes:

    • Windows: MSVC 2012 is now the minimum required compiler version if compiling without test suites; MSVC 2015 with test suites.
    • Linux: A system-wide cache directory (/usr/share/rom-properties/cache) is now supported. The primary use case is for systems that sandbox the thumbnailing process, which prevents rom-properties from downloading files from the Internet and from using the ~/.cache/ directory.
    • Windows: Property dialogs now show vertical scrollbars if necessary. This partially fixes issue #204, reported by @InternalLoss.

v1.6.1 (released 2020/07/13)

  • Bug fixes:

    • Windows: Fixed a guaranteed crash when viewing the "ROM Properties" tab. Fixes issue #236.
    • Downloads: Make sure Unicode sequences are properly escaped.
    • Windows XP: Added a workaround for RPDB not connecting over https due to WinInet.dll not supporting SNI.
  • Other changes:

    • Windows: The rp-download User-Agent string now includes the OS version number.

v1.6 (released 2020/07/12)

  • New parsers:

    • PlayStationDisc: New parser for PS1 and PS2 disc images.
    • PlayStationEXE: Basic parser for PS1 executables.
  • New parser features:

    • Xbox360_XEX: Handle delta patches somewhat differently. We can't check the encryption key right now, so skip that check. Also skip reading the EXE and XDBF sections, since we don't have the full executable in a delta patch.
    • Xbox360_STFS: Partial support for handling the embedded default.xex and/or default.xexp file using the Xbox360_XEX class.
    • Added external title screen images using the official ROM Properties online database server.
      • Supported systems: Game Boy (original, Color, Advance), Super NES
    • Game Boy Advance: Added metadata properties for Title and Publisher. (Same as Game Boy and Game Boy Color.)
    • NES: Added more (unused) mappers for TNES format.
    • GameCube: Added support for more formats:
      • Split .wbfs/.wbf1 files
      • GCZ compressed images
      • RVZ compressed images (header only; similar to WIA)
    • SNES: Significantly improved detection for ROM images with headers that don't quite match the specification. Added SPC7110 and other custom chip detection.
    • SNES: Added metadata properties.
    • SufamiTurbo: New parser for Sufami Turbo mini-carts for Super Famicom. This could have been part of SNES, but the header is completely different and is always located at $0000.
    • ISO: Added support for High Sierra Format CDs.
    • Cdrom2352Reader: Mode 2 sectors are now read correctly.
    • WiiSave: Show permissions as if they're Unix-style permissions, and show the "No Copy from NAND" flag.
    • WiiU: Get the GameTDB region code for boxart from the game ID.
    • XboxPublishers: New publishers lookup class for Xbox and Xbox 360.
    • GameCube: Detect more types of standalone update partitions.
  • Bug fixes:

    • WiiWAD: Fix DLC icons no longer working after updating CBCReader to update its internal position correctly, which was needed for Xbox 360 XDBF files.
    • RP_ExtractImage: Fix crash with dangling shortcut files. This bug was reported by @Midou36O.
    • Nintendo3DS: Show the issuer for CCI images. This was shown for CIAs, but we forgot to add it for CCI.
    • XboxDisc: Fixed an incorrect double-unreference when opening original Xbox ISO images that have a default.xbe file that isn't readable by the XboxXBE parser. (Issue #219; reported by @cfas1)
    • Nintendo3DS: CVer CIAs have an 8-byte meta section.
    • iQuePlayer: Fixed file type identification issues.
    • KhronosKTX: Fixed preview of textures with more than one array element.
    • GTK+ 3.x (Nautilus) UI frontends: Fixed a minor memory leak that leaked a file URI every time a File Properties dialog was opened.
    • D-Bus Thumbnailer (XFCE): Fixed an incorrect MimeTypes key that broke thumbnailing on systems that use tumblerd. This was broken starting with v1.4.
    • EXE: Fixed crashes for VFT_UNKNOWN and IMAGE_SUBSYSTEM_UNKNOWN. The latter case occurs with Wine's built-in DLLs.
  • Other changes:

    • Split file handling and CPU/byteorder code from librpbase into two libraries: librpfile and librpcpu.
    • The MATE, Cinnamon, and XFCE (GTK+ 3.x) plugins have all been merged into the GNOME plugin, and it is now named "gtk3". Among other things, this makes it possible to use the Ubuntu 18.04 "Bionic" packages on Linux Mint 19.3, which has an Ubuntu 18.04 base but uses the GTK+ 3.x version of Thunar.
    • KeyManager: Added full support for Wii U devkit otp.bin files, as well as debug Korean and vWii keys.

v1.5 (released 2020/03/13)

  • New features:

    • Improved support for FreeBSD and DragonFly BSD:
      • FreeBSD 10.0's iconv() is used if available. Otherwise, libiconv is used.
      • Fix LDFLAG detection for compressed debug sections (and others).
      • General build fixes for differences in e.g. system headers.
    • The SCSI handlers now have a one-sector cache. This should improve performance in many cases, since the various RomData subclasses do small reads for certain things instead of one giant read.
      • FIXME: Need to make use of the cache in the "contiguous" read section.
    • Image handling has been split from librpbase to librptexture. This will allow the texture decoding functionality to be used by other programs.
    • Key Manager: Import the Korean key from Wii keys.bin if it's present.
    • Added a UI frontend for the Cinnamon Desktop Environment using the Nemo file browser.
    • Cached files now contain origin information indicating the URL they were downloaded from. This can be disabled in rp-config if it isn't wanted.
    • The GTK+ UI frontends now support GVfs for network transparency.
    • KDE and GTK+ UI frontends: Icons can now be dragged and dropped from the property tab to another file browser window to extract them. This includes the icon, banner, and (KDE only) icons from ListView widgets.
      • Drag & drop support for Windows will be implemented in a future release.
      • Note that the dragged images don't have filenames yet, so either they will be extracted with generic filenames, or you will be prompted to enter a filename.
      • Note that Thunar doesn't seem to be accepting the dropped image data. This will be resolved in a future release.
    • Downloading functionality for online databases has been split out of the DLL and into a separate executable. This will allow the downloading to be handled in a lower privilege environment.
      • Windows: On Vista and later, rp-download runs as a low-integrity process.
      • Added other security functionality for rp-download and rpcli:
        • Linux: AppArmor profiles, libseccomp
        • OpenBSD: pledge() [and tame() for old versions]
      • AppArmor profiles for rp-stub will be added in a future release.
    • Windows: The online database code has been rewritten to use WinInet directly instead of urlmon, which reduces overhead.
    • The UI frontends now show a dropdown box to select the language if the ROM image has multiple translations for e.g. the game title.
    • Linux: Thumbnailers now write the "Thumb::Image::Width" and "Thumb::Image::Height" properties where applicable. These represent the size of the original image that was thumbnailed.
    • GTK+ 3.x: Don't premultiply the image before saving it as a PNG image. Premultiplication is only needed when displaying the image using Cairo.
  • New parsers:

    • DidjTex: Leapster Didj .tex and .texs texture files. For .texs, currently only the first texture of the archive is supported.
    • PowerVR3: PowerVR 3.0.0 textures. Used mainly by iOS applications. Not related to Sega Dreamcast PVR format.
    • PokemonMini: Pokémon Mini ROM images.
    • KhronosKTX2: Khronos KTX 2.0 texture format. (based on draft18)
  • New parser features:

    • WiiWAD, iQuePlayer: Display the console IDs from tickets. This is usually 0x00000000 for system titles and unlicensed copies.
    • KhronosKTX: Added support for BPTC (BC7) texture compression.
    • amiibo: Updated the internal database to be current as of 2020/01/11. Added some missing entries and fixed a few incorrect entries.
    • Xbox360_STFS: Title thumbnail images are now displayed as internal icons.
  • New compressed texture formats:

    • PowerVR Texture Compression. Supports PVRTC-I 2bpp and 4bpp in PowerVR 3.0.0, Khronos KTX, and DirectDraw Surface texture files. Uses code from the PowerVR Native SDK, which is redistributable under the MIT License.
    • PVRTC-II is partially supported.
      • TODO: Hard transition flag, images that aren't a multiple of the tile size.
    • RGB9_E5 is now supported in PowerVR 3.0, KTX, and DDS textures.
      • KTX and DDS are untested and may need adjustments.
      • RGB9_E5 is an HDR format, but rom-properties currently converts it to ARGB32 (LDR) for display purposes.
  • Bug fixes:

    • Fixed misdetection of NCCH sections if keys are missing.
    • GameCube I8 image decoder: The palette was being generated incorrectly. This has been fixed, though since I8 images are uncommon, this probably didn't cause too many problems.
    • Xbox XPR0 texture decoder: Fix a NULL pointer dereference that might happen if the texture format is swizzled but texture decoding fails.
    • SegaPVR: Added the .svr extension. Without this, SVR decoding doesn't work on Windows because it doesn't get registered for .svr files.
    • Fixed detection issues that caused the Nintendo DS ROM image "Live On Card Live-R DS" to be detected as an Xbox 360 STFS package. Reported by @Whovian9369.
    • Fixed transparent gzip decompression for files where the gzipped version is actually larger than the uncompressed version.
    • KhronosKTX: The metadata keys should be treated as case-insensitive, since some programs write "KTXOrientation" instead of "KTXorientation".
    • dll-search.c: The Mate Desktop check incorrectly had two entries for MATE and lacked an entry for GNOME.
    • Nintendo3DS: Fixed NCCH detection for CFAs with an "icon" file but no ".code" file, which is usually the case for DLC CIAs. #208
    • GameCube: Fixed the GameTDB region code for Italy.
    • CurlDownloader: Use a case-insensitive check for HTTP headers. cURL provides headers in lowercase when accessing an HTTP/2 server. This fixes handling of mtimes and content length.
    • Fixed some CBC decryption issues on Windows XP. This mostly affected decrypting Xbox 360 executables.
    • Nintendo3DS: Fixed decryption of games where the title ID does not match the program ID. This seems to show up in Traditional Chinese releases that use a Japanese region code instead of Taiwan.
    • rpcli JSON output: Fixed RFT_LISTDATA commas, RFT_DIMENSIONS format, and external image URLs format. Also escaped double-quotes properly.
    • Linux: Added the "application/x-cso" MIME type for GameCube .ciso format on Linux. (Note that this technically refers to a different format, but GameCube .ciso is incorrectly identified as this.)
    • GameCube: Calculate the used partition size correctly for unencrypted Wii RVT-H Reader disc images.
    • EXE: VS_VERSION_INFO resources in 16-bit Windows executables are now displayed correctly if they're encoded using a code page other than Windows-1252.
    • Fixed GameTDB downloads for CHN and TWN region games. (Nintendo DS, Nintendo 3DS, GameCube, Wii)
    • MegaDrive: Fixed region code detection for locked-on ROMs. Previously, it would use the base ROM region code for both.
    • MachO: Fixed CPU subtype detection for 486SX.
    • KDE frontends: Disabled automatic mnemonics on checkboxes used to show bitfield values, e.g. region codes and hardware support.
    • S3TC, BC7: Images with sizes that aren't a multiple of the 4x4 tile size can now be decoded. It is assumed that an extra tile is present, and this tile will be truncated to match the specified dimensions. This bug was reported by @HyperPolygon64.
    • GameCube: Fixed handling of NDDEMO's game ID. Instead of reporting no fields due to the NULL byte, change it to an underscore.
    • Linux: Fixed an off-by-one in the shared library search function that could cause rp-config to fail if e.g. using a GTK+ (either 2.x or 3.x) desktop environment with only the KDE4 UI frontend installed.
    • GameCube: Region ID 'I' is Italy ("IT"), not Netherlands ("NL"). This may have affected GameTDB downloads.
    • KDE thumbnails: Fixed an incorrect "Thumb::MTime" entry in some cases. The entry was being saved as "Thumb::Size", which resulted in two "Thumb::Size" entries.
    • Windows: Fixed incorrect file extension registration of Mach-O dylibs and bundles. (".dylib.bundle" was registered instead of ".dylib" and ".bundle" as separate extensions.)
    • KDE: Fixed vertical sizing of RFT_LISTDATA fields in some cases, e.g. Nintendo3DS.
    • rp_image::squared(): Added (non-optimal) CI8 support; fixed a potential memory corruption issue for images that are taller than they are wide.
  • Other changes:

    • Removed the internal copy of libjpeg-turbo. On Windows, gdiplus is now used for JPEG decoding. This setup was used before for PNG, but we now use more PNG functionality than is available from gdiplus, so libpng is staying put.
    • Xbox360_XEX: A warning is now shown if a required encryption key isn't available.
    • MegaDrive: Do a quick check of the 32X security code to verify that a 32X ROM is in fact for 32X.
    • Renamed the KDE5 frontend to KF5 to match upstream branding guidelines.
    • rpcli: Always use the localized system name that matches the ROM image.

v1.4.3 (released 2019/09/16)

  • Bug fixes:
    • GdiReader:
      • Fixed pointer confusion that caused crashes. This bug was reported by @HyperPolygon64.
      • Added support for GDI+ISO (2048-byte sectors).

v1.4.2 (released 2019/09/16)

  • Bug fixes:
    • Xbox360_XDBF: Improved avatar award handling:
      • Fixed an assertion (debug builds only) if an empty XGAA table is present.
      • Show all avatar awards, even if they have duplicate IDs.
    • GameCubeBNR:
      • Metadata: Fixed gamename vs. gamename_full copy/paste error.
    • RomMetaData:
      • Handle nullptr strings gracefully instead of crashing. #195

v1.4.1 (released 2019/09/07)

  • New parser features:

    • amiibo: Updated the internal database to be current as of 2019/08/18.
  • Bug fixes:

    • In some cases, the SCSI handlers for both Linux and Windows weren't working properly. In particular, on Linux, attempting to read "too much" data at once resulted in getting nothing, and on both systems, in some cases, passing a buffer larger than the number of requested sectors results in the sectors being loaded at the end of the buffer, not the beginning.
    • rp-config: If keys were imported from a supported key database file and settings saved, those keys wouldn't actually be saved, since the import function did not set the "changed" flag. As a workaround, modifying any key manually before saving would set the "changed" flag.

v1.4 (released 2019/08/04)

  • New features:

    • The Cairo graphics library is now used for GTK+ 3.x builds.
    • The un-premultiply function, used for DXT2 and DXT4 images, now has an SSE4.1-optimized implementation. The standard implementation has also been optimized to be somewhat faster.
    • The XFCE frontend can now be built for both GTK+ 2.x and 3.x.
    • File metadata is now exported to the desktop environment. This includes e.g. dimensions for textures and duration for audio. Currently supported on KDE and Windows.
    • Support for gzipped files. This is important for VGMs, which are commonly distributed in gzipped format (.vgz).
    • ROM images for Nintendo DS and 3DS with "dangerous" permissions now have an overlay icon on Windows and KDE. This normally happens with certain homebrew that requires full system access (or system titles), but it's also possible that someone could create a malicious homebrew title disguised as a retail game.
      • NOTE: The Windows implementation currently requires Windows Vista or later.
      • NOTE 2: The Windows implementation was disabled for this release due to unexplained crashes.
    • rpcli will now print multi-line entries in lists using multiple lines instead of showing a U+240A symbol between lines.
    • RFT_LISTDATA fields (ListView, etc.) can now have text alignment set by the various RomData subclasses.
    • Added an option to disable thumbnailing and metadata extraction on network file systems and "bad" file systems. The option is set by default to reduce slowdown.
    • Added a UI frontend for the MATE Desktop Environment using the Caja file browser. MATE 1.18 or later is required. (GTK+ 3.x)
  • New parsers:

    • WiiWAD: Wii WAD packages. Contains WiiWare, Virtual Console, and other installable titles. Supports GameTDB image downloads for most WADs, and extracts the internal icon and banner for DLC WADs.
      • Also supports early devkit WADs that use a slightly different format.
    • WiiSave: Encrypted Wii save files. These are the data.bin files present on the SD card when copying a save file from the Wii Menu.
    • WiiWIBN: Wii banner files. These are contained in encrypted Wii save files and Wii DLC WADs, and are present as standalone files in unencrypted Wii save directories as banner.bin.
    • MachO: Mach-O binary parser for Mac OS X and related operating systems. Includes support for Universal Binaries.
    • NGPC: Neo Geo Pocket (Color) ROM image parser.
    • Xbox360_XDBF: Xbox 360 XDBF resource files. Only the variant used by XEX executables is supported at the moment.
    • Xbox360_XEX: Xbox 360 executables.
    • XboxXPR: Xbox XPR0 textures.
      • Used in save files and elsewhere.
      • Currently only supports XPR0. XPR1 and XPR2 are texture archives, and support for those may be added later.
    • ISO: ISO-9660 parser.
      • Parses the Primary Volume Descriptor for ISO-9660 images.
      • Sega Mega CD, Sega Saturn, and Sega Dreamcast parsers now show the ISO-9660 PVD using the new ISO-9660 parser.
    • XboxDisc: Xbox and Xbox 360 disc image parser.
      • Reads default.xbe and/or default.xex from the XDVDFS partition and calls the appropriate parser to handle these files.
      • Supports reading original discs if a supported DVD-ROM drive with Kreon firmware is connected.
    • Xbox_XBE: Original Xbox executables.
    • Xbox360_STFS: Xbox 360 packages.
    • iQuePlayer: iQue Player content metadata and ticket files.
  • New audio parsers:

    • ADX: CRI ADX audio format. Used by many Sega games.
    • GBS: Game Boy Sound System. Used for Game Boy audio rips.
      • Supports GBS files embedded in GBS Player ROM images.
    • NSF: Nintendo Sound Format. Used for NES audio rips.
    • PSF: Portable Sound Format. Used for PlayStation audio rips. Subformats are used for several other platforms.
    • SAP: Atari 8-bit audio format.
    • SID: Commodore 64 SID Music format.
    • SNDH: Atari ST audio format. Supports uncompressed files and files compressed using the ICE! algorithm.
    • SPC: Super NES SPC-700 audio format.
    • VGM: Video Game Music format. Used for all sorts of video game audio rips, including Sega Mega Drive and Neo Geo Pocket.
    • BRSTM: Nintendo Wii BRSTM audio files.
    • BCSTM: Nintendo 3DS BCSTM and BCWAV audio files.
      • Also supports Nintendo Wii U BFSTM audio files.
  • New parser features:

    • DMG: Added support for the GBX footer. This is used to indicate certain cartridge features that either can't be represented in the DMG header or aren't properly represented in e.g. unlicensed games.
    • DirectDrawSurface:
      • For non-DX10 textures, the equivalent DX10 format is now shown if it can be determined.
      • BC7 texture compression is now supported.
    • ELF:
      • Two PT_DYNAMIC headers are now displayed if present:
        • DT_FLAGS
        • DT_FLAGS_1
      • Linkage is now only shown for executables.
    • GameCube:
      • Split the GameCube opening.bnr code into a separate parser. This allows standalone GameCube opening.bnr files to be handled.
      • Display the title ID for Wii games, since it might be different than the game ID.
      • Show access rights, i.e. AHBPROT and DVD Video.
      • Detect Wii update partitions that have Boot2 and a single IOS, but not a System Menu.
      • Added support for NASOS images. (GCML, WII5, and WII9)
        • GCMM images are not supported yet because there doesn't seem to be any documentation on how to create one.
      • Added China and Taiwan region codes.
      • Added support for standalone Wii partitions. These are commonly used with the NKit tool to restore full Wii disc images.
    • NES: Added support for the internal footer present in some ROMs. This footer is used for, among other things, FamicomBox.
    • Nintendo3DS: Split the SMDH code into a separate parser. This should make maintenance easier.
    • NintendoDS:
      • The "Access Control" field (labeled "Permissions") is now shown for ROMs with DSi functionality. Both permissions and flags are now shown on a new tab, and they both use a listbox instead of a grid of checkboxes.
      • DSi flags are now shown for NDS ROMs released after the DSi, since these ROMs have some DSi-specific headers for signature verification, even if they aren't DSi-enhanced.
    • SegaPVR: Support for SVR files used on the Sony PlayStation 2.
      • Most formats are supported, excluding those that require an external palette.
      • Format 0x61 (rectangle, swizzled) is partially supported.
      • 4-bit textures >=128x128 might not be unswizzled correctly at the moment.
  • Bug fixes:

    • Nintendo 3DS:
      • Handle DLC packages with more than 64 contents.
      • Correctly handle localized titles. Previously, English titles were used regardless of the system region.
    • Linux: Fixed a file handle leak that was only noticeable when handling more than 1,023 files in one invocation of the rpcli program.
    • GameCube: Fix bug that prevented "EUR" and "JPN" from being appended to region code descriptions if the game's BI2 region doesn't match the ID4 region.
    • EXE:
      • Fixed a crash that occurred when viewing the properties of a Windows 1.0 executable in any UI frontend other than rpcli.
      • Fixed inverted "windowsSetting" flags.
    • CBCReader: Added unaligned read support and fixed positioning issues when reading unencrypted data. This only affected the Xbox360_XEX parser; WiiSave, WiiWAD, and CIAReader were not affected.
    • MegaDrive: Fixed an off-by-one error that caused Mega CD disc images to be detected as Mega Drive ROM images.
    • ETC2: Fixed alpha decoding for GL_COMPRESSED_RGBA8_ETC2_EAC. Note that the test case image used the incorrect decoding, so tests didn't catch this bug.
    • SegaPVR: Fixed Small VQ decoding for 16x16 and 32x32 textures without mipmaps.
  • Other changes:

    • Removed S2TC decoding. The first version of rom-properties with support for S3TC, v1.2, was released after the S3TC patents expired. Since the patents expired, S3TC can be unconditionally enabled, and we don't need the S2TC decoder or test images anymore.
    • The Linux UI frontends will no longer initialize if running as root. rpcli will still run as root for now, though it's not recommended.
    • The XDG MIME database rom-properties.xml is now installed on Linux systems. This provides MIME types for formats not currently present in FreeDesktop.org's shared-mime-info database.

v1.3.3 (released 2018/08/25)

  • GameCube: Fixed a crash when downloading external images for Disc 2 from multi-disc games. Thanks to @Nomelas for reporting this bug.

v1.3.2 (released 2018/06/30)

  • Linux: Fixed a crash on GNOME and XFCE when using Ubuntu 16.04. IFUNC was not being disabled on gcc5 in the GTK+ directory.

  • XFCE: The Specialized Thumbnailer file has a MimeTypes key, not MimeType.

v1.3.1 (released 2018/06/12)

  • Windows: Fixed a bug that caused Explorer to crash if a supported file had an internal image whose width was not a multiple of 8.

  • Bug fixes:

    • Wii U: The .wux file extension wasn't registered on Windows, so it wasn't properly detected.

v1.3 - The Internationalization Release (released 2018/06/02)

  • New features:

    • Most strings are now localizable. The gettext utilities and libintl library are used to provide localization support.
    • All builds now use UTF-8 for text encoding. This increases overhead slightly on Windows due to required UTF-8 to UTF-16 conversion, but it reduces the DLL size. (The Qt build doesn't have much overhead difference, since it has to copy char16_t data into QString before using it anyway.)
      • The rp_char and rp_string typedefs have been removed.
    • The 16-bit and 32-bit array byteswapping functions have been optimized using MMX, SSE2, and SSSE3.
  • New texture formats:

  • New systems:

    • ELF: Executable and Linkable Format. Used by Linux, most Unix systems, and many other platforms, including GameCube and Wii. A modified version, RPX/RPL, is used on Wii U and is also supported.
    • game.com: Tiger game.com ROM images. Supports properties and icons.
  • New system features:

    • Super NES: Satellaview BS-X ROM headers are now decoded properly.
    • Wii: Added support for unencrypted images from debug systems and GCM images with SDK headers.
    • NES: Improved publisher lookup for FDS titles.
    • Wii U: Display game publishers; added support for .wux disc images.
    • DMG: Added more entry point formats.
    • DirectDrawSurface: Untested support for Xbox One textures.
    • NintendoDS: Improved DSi flag decoding; added key index decoding.
    • N64: Fix CRC fields; added Release field.
  • New compressed texture formats:

    • Ericsson ETC1 and ETC2
    • Variations of S3TC compression in different texture formats, including support for both RGTC and LATC in Khronos KTX files.
    • Support for DXT1 with and without 1-bit alpha. Alpha selection is supported by Khronos KTX and Valve VTF. For other texture file formats, the DXT1_A1 algorithm is selected for maximum compatibility.
  • Bug fixes:

    • EXE: "Product Version" was showing the same value as "File Version". It's usually the same, but there are cases where these version numbers are different, e.g. wrapper EXEs for interpreted programs.
    • rp-config: If a key is present in keys.conf but has no value, it was previously listed as invalid. It's now listed as empty.
    • KhronosKTX: Copy sBIT if the image needs to be vertically flipped.
    • Win32: The Properties tab sometimes didn't show up if another program claimed ownership of the file extension, e.g. VS2017 handling .dds files. The tab is now registered to handle all files, though it will only show up if the file is actually supported by rom-properties.
    • DreamcastSave: Trim spaces from the end of text fields.
    • KDE frontends: Enabled the "ROM Properties" tab on files located on the desktop.
    • MegaDrive: Fixed detection of some unlicensed ROMs that have extra text in the "System" field.
    • GameCube: Fixed a crash when reading a Wii disc image that has no game partition.
    • GTK+: Fixed a potential crash if running on a system that doesn't support SSSE3 instructions.
    • Win32: rp-config's option to clear the rom-properties cache didn't do anything. It now clears the rom-properties cache directory.
  • Other changes:

    • libromdata/ has been reorganized to use subdirectories for type of system. This currently includes "Console", "Handheld", "Texture", and "Other".
    • rpcli no longer supports BMP output. Use PNG output instead.

v1.2 - The Dreamcast Release (released 2017/11/12)

  • New features:

    • rpcli, rp-stub, rp-thumbnailer-dbus: PNG images now have an sBIT chunk, which indicates the number of bits per channel that were present in the original image. In addition, RGB images that don't have an alpha channel are now saved as RGB PNGs instead of ARGB PNGs, which usually results in a smaller file.
    • Some functions are now optimized using SIMD instructions if supported by the host system's CPU:
      • Sega Mega Drive: SMD format decoding (SSE2)
      • 15/16-bit linear RGB decoding (SSE2)
      • 24-bit linear RGB image decoding (SSSE3)
      • 32-bit linear ARGB/xRGB image decoding (SSSE3)
  • New systems:

    • Sega PVR and GVR decoding. These are texture files used in Sega games on Dreamcast, GameCube, and various PC ports.
    • Microsoft DirectDraw Surface decoding. These are texture files used in various PC games. Supports several uncompressed RGB and ARGB formats, DXTn, BC4, and BC5.
    • Nintendo Badge Arcade decoding. Supports both PRBS (badge) and CABS (badge set) files. PRBS decoding supports mega badges as well.
    • Sega Dreamcast disc images. Currently supports raw track 03 disc images in 2048-byte and 2352-byte sector formats, and GD-ROM cuesheets (*.gdi).
    • Sega Saturn disc images. Currently supports raw track 01 disc images in 2048-byte and 2352-byte sector formats.
    • Atari Lynx ROM images. Currently only supports headered images.
  • New system features:

    • Nintendo DS: Detect "Mask ROM" separately from Secure Area encryption. This indicates if the $1000-$3FFF area is blank. This area cannot be read on hardware (or the method to read it is unknown), so it's always 0 bytes in dumped ROMs. The official SDK puts unknown pseudo-random data here, so DSiWare and Wii U VC SRLs will have non-zero data here.
    • Game Boy: "Game Boy Color" will now only be shown for GBC-exclusive ROMs instead of both GBC-exclusive and GBC-enhanced.
    • Nintendo 3DS: Display the game title that most closely matches the system language. This was already done for Nintendo DS titles, and is also being done for Nintendo Badge Arcade files, which use a language setup similar to Nintendo 3DS.
  • Bug fixes:

    • Fixed decoding of BGR555 images. The lower part of the R channel was shifted the wrong amount, resulting in an incorrect Red value expansion.
    • (KDE4) rp_create_thumbnail(): Set the MIME type in the thumbnail file.
    • Wii U: Make sure GameCube and Wii magic numbers aren't present in the disc header. This ensures that a GCN/Wii disc image with the game ID "WUP-" doesn't get detected as a Wii U disc image.
    • Fixed CIAReader failing to compile in no-crytpto builds.
    • (Windows) The icon in the property sheet page is now scaled instead of vertically cropped if it's larger than 32x32.
    • (Windows) The first text field on the properties page is no longer automatically selected when the page is first selected.
    • Nintendo 3DS:
      • Fixed detection of certain truncated CIA files.
      • Detect NDHT and NARC CIAs correctly.
  • Other changes:

    • The PNG compression level is now set to the default value instead of 5. This corresponds to 6 with libpng-1.6.31 and zlib-1.2.11.
    • The system text conversion functions are now used for handling Latin-1 (ISO-8859-1) encoding instead of our own conversion function. In particular, this means the C1 control characters (0x80-0x9F) are no longer invalid and will be converted to the corresponding Unicode code points.
    • When comparing byteswapped data to a constant, the byteswapping macro is now used on the constant instead of the variable. This is needed in order to byteswap the constant at compile time in MSVC builds. (gcc does this even if the byteswap is on the variable.)
    • Updated MiniZip to an unofficial fork: https://github.com/nmoinvaz/minizip
    • rp-config: Added an "About" tab.
    • Symbolic links are now resolved when searching for related files, e.g. pairs of .VMI/.VMS files for Dreamcast saves. For example, if you have /dir/main.vmi and /dir/main.vms, and a symlink /save.vmi -> /dir/main.vmi, the symlink will now be resolved and the VMS file will be loaded. This feature is supported on Linux and Windows (Vista or later).
      • Note that Windows Explorer appears to automatically dereference symlinks when using IExtractImage, which is what ends up being used anyway because IThumbnailProvider doesn't provide a full path.
    • rp-config: The key manager can now import keys from Wii U otp.bin files.

v1.1 (released 2017/07/04)

  • New features:

    • (KDE) rp-config is now available in both the KDE4 and KDE5 frontends. This is based on the rp-thumbnail stub that was previously used for the GNOME frontend. Both of them are now part of a new executable, rp-stub.
    • (KDE, Windows) rp-config now has a Key Manager tab, which allows you to edit and verify encryption keys. There is also a key import function, which allows you to import keys from certain types of key files.
    • (XFCE) Thumbnailing is now supported using tumblerd's D-Bus specialized thumbnailer interface. (#39)
  • New systems:

    • Nintendo 3DS firmware binaries are now supported. For official FIRM binaries, the CRC32 is compared against an internal database of known versions. This currently includes 1.0 through 11.4. For unofficial FIRM, various heuristics are used to determine if it's a well-known homebrew title.
    • Sega 8-bit: Initial reader for Sega 8-bit ROM images. Currently supports Sega Master System and Game Gear ROMs that have the "TMR SEGA" header, as well as Codemasters and SDSC extra headers.
  • New system features:

    • Encrypted DSiWare CIAs are now supported, provided you have the keys set up in keys.conf. (Slot0x3D, KeyX, KeyY-0 through KeyY-5; or, Slot0x3D KeyNormal-0 through KeyNormal-5)
    • Nintendo 3DS: The logo section is now checked and displayed. Official Nintendo logos and a few Homebrew logos are supported. Anything else is listed as "Custom".
    • Mega Drive: A new "Vector Table" tab has been added. This tab shows the Initial SP and Entry Point, plus several other vectors.
    • Mega Drive: A second ROM Header tab for locked-on ROMs has been added. This shows the ROM header information for locked-on ROMs for e.g. "Sonic 3 & Knuckles".
    • PlayStation Saves: Save formats other than PSV (*.mcb, *.mcx, *.pda, *.psx, *.mcs, *.ps1, and raw saves) are now supported.
    • Nintendo 3DS: Application permissions are now listed for CIAs and CCIs. (Requires decrypted images or the appropriate encryption keys.)
    • EXE: MS-DOS executables now show more information.
  • Bug fixes:

    • (GNOME) The .thumbnailer file was not packaged in the Ubuntu pre-built packages, which prevented thumbnailing from working.
    • Fixed issues with Shift-JIS titles in some PS1 save files. The title fields had garbage characters after the main title, with NULLs before and after the garbage characters. (#83)
    • (Windows) Property page: Fixed icon resizing for icons smaller than 32x32. This only affects PS1 save files at the moment.
    • (GTK+) In the file properties dialog, animated icons are now paused when the tab isn't visible. This reduces CPU usage.

v1.0 (released 2017/05/20)

  • New systems supported:

    • Windows/DOS: Executables, dynamic link libraries, and other types of executable files are supported. Includes parsing of version and manifest resources. Icon thumbnailing on non-Windows systems will be added in a future release.
    • Nintendo Wii U: Full disc images (*.wud) are supported, with image downloads for disc, cover, 3D cover, and full cover scans.
    • Nintendo 3DS: SMDH, 3DSX, CCI (*.3ds), CIA, and NCCH files are supported. Parts of some formats (CCI, CIA, NCCH) may require decryption keys. If the keys are not available, then some information will not be available.
  • New features:

    • Property page viewers now support subtabs. This is used for Windows executables that contain version and manifest resources.
    • JPEG is now supported for image downloads from external image databases. GameTDB uses JPEG for certain image types, including Nintendo DS covers.
    • Added support for downloading Nintendo DS, GameCube, and Wii cover scans. This includes cover and full cover scans for all three, and 3D cover scans for GameCube and Wii.
    • Multiple image sizes are now supported for external image downloads. GameTDB has higher-resolution scans for certain image types, including Nintendo DS cover scans. These high-resolution scans are used if a larger thumbnail size is requested by the file browser. An option to disable downloading of high-resolution images is available in the user config file.
    • (Windows) Physical block devices are now supported. This allows viewing ROM Properties for certain types of physical media, e.g. Wii DVD-R backups. Currently only the property page is supported. Thumbnails (and icons) are not supported for block devices.
    • Nintendo DS: Slot-2 PassMe ROM images are now recognized.
    • (rpcli) New option "-k". This option will verify all known keys in keys.conf. Verification is done by decrypting a string that was encrypted with the original key and checking if the decrypted string is correct.
    • GameCube: Added partial support for WIA disc images. A copy of the disc header is stored in plaintext in WIA format, so disc header fields and external images are supported. Region code, age ratings, and the internal GCN banner are not supported.
    • (Windows) A configuration program, rp-config.exe, is now included. This allows you to configure the image type priority for thumbnails as well as download options. Linux versions will be added in a future release, though the underlying rom-properties.conf functionality is implemented and works on all platforms.
    • (Windows) A new installation program, svrplus, is provided. This program supercedes install.cmd and uninstall.cmd.
    • (rpcli) New option "-c". This option prints the system region codes. This is mostly useful for debugging.
  • Bug fixes:

    • Fixed an inverted "Copy Protected" condition for Dreamcast VMI files.
    • Fixed age ratings not showing up for Japanese Nintendo DSi and Wii games.
    • Fixed access to files on Wii partitions located past 4 GB. This applies to logical addresses in sparse formats, e.g. WBFS.
    • Wii: The "Game Info" field may be two separate lines.
    • (GNOME) The libnautilus-extension path is no longer hard-coded to /usr/lib64/. This prevented it from working correctly on anything but 64-bit Linux systems that used the older multilib path, which means the Ubuntu GNOME packages did not work.
    • (Windows) Fixed a crash if tinyxml2.dll is missing and a Windows EXE with an embedded manifest resource is selected. Also improved the Delay-Load function to use architecture-specific subdirectories.
  • Other changes:

    • (Windows) The 32-bit EXEs have been moved out of the i386/ subdirectory and into the base directory. The 64-bit EXEs are still in the amd64/ subdirectory.

v0.9-beta2 (released 2017/02/07)

  • New features:

    • New GTK+ frontends for XFCE's Thunar file manager (using GTK+ 2.x) and GNOME's Nautilus file manager (using GTK+ 3.x). These currently only implement the property page. Thumbnailing for Nautilus has been implemented. Thumbnailing for Thunar will be added later.
      • While the GTK+ frontends share code, they are packaged separately in order to reduce dependencies on GNOME-only and XFCE-only systems.
    • Negative image caching for online databases (that is, caching the "this image does not exist" result) now expires after one week. This allows the image to be retrieved if it has since been uploaded to the database without manually clearing the local cache.
    • New command line frontend rpcli. This frontend lists the ROM information that would normally be displayed on the property page. It also has options for extracting internal images and downloading external images.
    • The Windows version now registers for "common" file extensions, e.g. ".bin" and ".iso". The previous handlers are saved as fallbacks. If rom-properties cannot handle one of these files, the fallback handler is used.
  • New systems supported:

    • Nintendo 64 ROM images: Z64, V64, swap2, and LE32 byteswap formats. Currently only supports text fields.
    • Super NES ROM images: Headered and non-headered images. Currently only supports text fields.
    • Sega Dreamcast save files: .VMS, .VMI, .VMS+.VMI, and .DCI formats. Supports text fields, icons, and the graphic eyecatch (as the banner). ICONDATA_VMS files are also supported.
    • Nintendo Virtual Boy ROM images: .VB format.
    • Nintendo amiibo NFC dumps: 540-byte .bin files. (On Windows, the .bin extension is not currently registered; alternatives are .nfc and .nfp)
    • Nintendo Entertainment System: iNES, FDS, QD, and TNES/TDS (3DS Virtual Console) formats are supported.
  • Changes to existing systems:

    • GameCube: Fixed accidental swapping of Triforce and Wii system names.
    • GameCube: Some save files have an embedded NULL byte in the description field. This caused the description to get truncated. This case is now handled. (Example: "Baten Kaitos Origins" save files.)
    • Wii: Added support for RVT-R debug discs. The encryption key used for each partition is now displayed in the partition listing.
    • Wii: Show the used size of each partition in addition to the total size.
    • Wii: Show the game title from opening.bnr.
    • Game Boy Advance: Some ROM images that are intended for use as expansion packs for Nintendo DS games weren't recognized because they don't have the Nintendo logo data. These ROM images are now detected and marked as non-bootable Nintendo DS expansions.
    • Game Boy Advance: Fixed the entry point. The value was off by 8 bytes due to the way branches are handled in the ARM pipeline. The branch offset is also signed, so it could be negative (though this is unlikely).
    • Nintendo DS: Fixed an issue where the first frame of DSi animated icons was not selected correctly. (Example: "Four Swords Anniversary Edition".)
    • Nintendo DS: Show age ratings for DSi-enhanced and DSi-exclusive games.
  • Other changes:

    • (Windows) Fixed anti-aliasing issues with monospaced fonts on the properties page.
    • (Windows) Fixed an incorrect half-pixel offset with some resized thumbnails, which resulted in the thumbnails "shifting" when Explorer switched from icons to thumbnails.
    • libpng is now used on all platforms. Previously, GDI+'s PNG loader was used on Windows, and it had some odd quirks like loading grayscale images as 32-bit ARGB instead of paletted.
    • (Windows) zlib and libpng are now compiled as DLLs instead of being statically linked. The DLLs are linked using delay-load, so they're not loaded until they're needed.
    • pngcheck: Fixed a race condition that could result in crashes if more than one thread attempted to load a PNG image at the same time.
    • Age ratings for CERO, ESRB, and AGCB are now converted to their official names instead of being displayed as numbers.

v0.8.1 (Windows only) (released 2016/10/24)

  • RP_ExtractIcon: Disabled icon caching. This was causing issues where all icons for supported ROM images were showing up as whichever file was the first to be processed.

v0.8-winfix (Windows only) (released 2016/10/23)

  • Fixed the working directory in the install.cmd and uninstall.cmd scripts. Windows switches to C:\Windows\System32 by default when running a program or batch file as Administrator, which prevented the installation scripts from finding the DLLs.

v0.8-beta1 (released 2016/10/23)

  • First beta release.

  • Host platforms: Windows XP and later, KDE 4.x, KDE 5.x

  • Target systems: Mega Drive (and add-ons), Nintendo DS(i), Nintendo GameCube (discs and save files), Nintendo Wii, Game Boy (Color), Game Boy Advance.

  • Internal images supported for GameCube discs and save files, and Nintendo DS ROMs.

  • Animated icons supported for GameCube save files and Nintendo DSi ROMs. Note that file browsers generally don't support animated icons, so they're only animated on the file properties page.

  • External image downloads supported for GameCube and Wii discs via GameTDB.com.

  • Decryption subsystem for Wii discs. Currently only used to determine the System Update version if a Wii disc has a System Update partition. Keys are not included; you must manually add the encryption keys to keys.conf. (See README.md for more information.)