ROM Properties Page shell extension

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
ROM Properties Page v1.5 is now available for download!

GitHub: https://github.com/GerbilSoft/rom-properties/releases
Ubuntu PPA: https://launchpad.net/~gerbilsoft/+archive/ubuntu/ppa

There's a lot of new stuff in v1.5, so I'll just list a few of the big ones:
  • Support for Leapster Didj textures, PowerVR 3.0.0 textures, Pokémon Mini ROM images, and Khronos KTX2 textures.
  • Enhanced security functionality for the online database image downloader on Windows, Linux, and OpenBSD.
  • The property sheet now shows a language dropdown for some formats that support multiple languages in a single ROM, e.g. Nintendo DS and 3DS.
  • Xbox 360 STFS thumbnail icons are now displayed.

See NEWS.md for the full list of changes.

rp.win7.DidjTex.png


ROM Properties Page v1.3.1 is now available for download!

GitHub: https://github.com/GerbilSoft/rom-properties/releases
Ubuntu PPA: https://launchpad.net/~gerbilsoft/+archive/ubuntu/ppa

NOTE: v1.3.1 has a minor bugfix for a crash that occurred on Windows for certain file types whose internal image widths were not a multiple of 8. The Linux version is not affected, so v1.3.1 is only available for Windows.

New features:
  • Internationalization. The GNU gettext library is used to provide translation support for most of the UI. This version includes a complete pt_BR translation from Null Magic, and partial ru and uk translations from Egor.
  • MMX/SSE2/SSSE3-optimized byteswapping functions.
New texture formats:
  • Khronos KTX
  • Valve VTF
  • Valve VTF3
New systems:
  • ELF (Executable and Linkable Format) [includes Wii U RPX/RPL]
  • game.com (Tiger Electronics)
New compressed texture formats:
  • Ericsson ETC1 and ETC2
  • Variations of S3TC compression, including RGTC and LATC.
  • DXT1 with and without 1-bit alpha. Only VTF supports selecting this; for other texture formats, DXT1_A1 is used.

See NEWS.md for the full list of changes.

rp.win7.GameCom.png

New features:
  • rpcli, rp-stub, rp-thumbnailer-dbus: PNG images now have an sBIT chunk. Images without an alpha channel are now saved as RGB PNGs instead of ARGB, which usually results in a smaller file.
  • Some functions have been optimized using SSE2 and/or SSSE3.
New systems:
  • Sega PVR and GVR texture decoding.
  • Microsoft DirectDraw Surface decoding.
  • Nintendo Badge Arcade files.
  • Sega Dreamcast disc images. (Track 03 in ISO or BIN, and .GDI)
  • Sega Saturn disc images.
  • Atari Lynx ROM images. (Headered only)
See CHANGES.md for a full list of changes.

Download links:
Note: For Windows, you will need the MSVC 2017 runtime:
Note 2: For *ubuntu, you can install the individual packages, or rom-properties-all for all frontends.

----------------------------------------------------------------

So, what does this shell extension do?

Got a USB hard drive with Wii disc images for USB Loader GX or the Dolphin Emulator? Now you can actually see what those discs are:

rp.win7.wii-discs.png


Or maybe you're using Nintendont for GameCube:

rp.kde5.gcn-discs.png


How about some in-depth information on a GameCube save file? (The icon will be animated if your browser supports APNG.)

rp.kde5.GSNE8P.gci.animated.png
 
Last edited by GerbilSoft, , Reason: rom-properties 1.5

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,321
Country
United Kingdom
I did like having DS icons appear on my PC a while back and this looks like it is going to be a step up. Pity I leave most things zipped these days.
 
  • Like
Reactions: KiiWii

JaceCearK1

Well-Known Member
Member
Joined
May 18, 2015
Messages
540
Trophies
0
Age
27
XP
415
Country
Gambia, The
@GerbilSoft
How does displaying the NDS-icons work?
Do you extract them from the games first, convert them to .ico-files and store them somewhere like in %appdata%, or is there a simpler method? :)
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
@GerbilSoft
How does displaying the NDS-icons work?
Do you extract them from the games first, convert them to .ico-files and store them somewhere like in %appdata%, or is there a simpler method? :)
The icons are extracted from the ROM image when requested by the file browser. For images built into ROM/disc images, the image is not cached by the extension, but the file browser will usually cache it.

For external images (e.g. GameTDB downloads), the extension does cache the images in %LOCALAPPDATA%\rom-properties\cache\ .
 

migles

All my gbatemp friends are now mods, except for me
Member
Joined
Sep 19, 2013
Messages
8,033
Trophies
0
Location
Earth-chan
XP
5,299
Country
China
since it supports multiple systems,

Supports ROM and disc images for: Mega Drive (including CD, 32X, and Pico), Game Boy (Color), Game Boy Advance, Nintendo DS(i), GameCube, Wii.

OMG thank you....
usualy theese tools are just for one system like the 3ds...
and i am not a great fan of rom managers, specially because they are dedicated to 1-2 systems..
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
It isn't really a ROM manager per se. It simply adds some useful functionality to the system file browser, e.g. thumbnail previews for certain types and a property page.

EDIT: I might have misread your post and you were referring to other ROM managers. :V

EDIT 2: I'm currently working on a test suite for my GameCube FST parser, since I'm not 100% sure of how reliable it is. Need to extract the FSTs from all partitions on all of my Wii games in order to get a decent set of test files. (Already did this for GCN as part of the CISO work for Nintendont.)
 
Last edited by GerbilSoft,

migles

All my gbatemp friends are now mods, except for me
Member
Joined
Sep 19, 2013
Messages
8,033
Trophies
0
Location
Earth-chan
XP
5,299
Country
China
It isn't really a ROM manager per se. It simply adds some useful functionality to the system file browser, e.g. thumbnail previews for certain types and a property page.

EDIT: I might have misread your post and you were referring to other ROM managers. :V
i know this isn't a rom manager, it's a tab for file propertiles.
what i meant is, makes managing games directly on the OS much easier.
there was that 3ds icons windows addon which i never found interest because it only supported 3ds roms, i have a rom collection from all the different systems...
I am happy that you didn't decided to make this tool just for a couple of recent consoles but you are trying to make it as universal as possible
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
How can I tell Windows how to access the data? Are there certain API-calls or Registry-Edits that have to be done?
...what are you trying to do, access the Explorer thumbnail database?

If you just want to extract the icons, there's a work in progress command line interface that will extract the images to BMP (later PNG and/or APNG to preserve transparency information). It won't be included in the initial release, though.

i know this isn't a rom manager, it's a tab for file propertiles.
what i meant is, makes managing games directly on the OS much easier.
there was that 3ds icons windows addon which i never found interest because it only supported 3ds roms, i have a rom collection from all the different systems...
I am happy that you didn't decided to make this tool just for a couple of recent consoles but you are trying to make it as universal as possible
The 3DS extension is what inspired this one. My tool won't support 3DS yet, but a future version will support extracting the icon from the ROM image (assuming I can figure out all the encryption stuff) and/or downloading covers from GameTDB.

The main reason why I decided to write this extension is because I got tired of staring at generic icons whenever I was managing my Wii HDD and R4i SD card. There's still a few files it doesn't recognize (a few of my GCN games don't have disc scans on GameTDB, which I plan to resolve once I get a new scanner, and it can't handle the second part of split WBFS files on FAT32), but it's a lot better than nothing.
 
Last edited by GerbilSoft,

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
That... is kinda what this shell extension does. It's not ready for release yet, but once it is, I'll post it and you'll be able to set it up to do that.

EDIT: More specifically, it registers itself using several COM interfaces:
  • IExtractIcon
  • IExtractImage
  • IThumbnailProvider (not implemented yet, but will be done before release)

IExtractIcon provides a native "icon", while the other two provide thumbnails. Currently, IExtractIcon is only used for DS icons, while IExtractImage/IThumbnailProvider are only used for GameCube and Wii disc scans. I'll eventually add support for IExtractIcon for GCN/Wii and other combinations.
 
Last edited by GerbilSoft,
  • Like
Reactions: JaceCearK1

CheatFreak47

Catgirl Expert
Member
Joined
Oct 11, 2011
Messages
1,573
Trophies
2
Age
28
Location
Michigan, USA
XP
2,768
Country
United States
This is something I'm super super interested in, how's the progress going on this?
I literally stand to benefit so much from something like this, it'd make roms so much easier to deal with. :toot:
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
This weekend I fixed a bunch of the major issues I filed on GitHub as a progress tracker.
  • Completed the GcnFst test suite. I still need to add some example FSTs and add fuzzing, but it should be good enough for now. It's already helped me spot one minor compatibility issue between Linux and Windows (see below).
  • Implemented an rp_image backend using GDI+ (on Windows). This should reduce some overhead when loading PNG images since I was already using GDI+ for that, so it no longer has to convert it to the default storage backend and then back to GDI+ for display.
  • IThumbnailProvider is now implemented for full alpha transparency support on Windows Vista and later. Unfortunately, IThumbnailProvider doesn't automatically enlarge smaller thumbnails, so I have to work around this by resizing it in the code, which isn't a very good workaround. As a compromise, I've set the default for the initial release to only resize small icons, e.g. Nintendo DS. GameTDB disc scans won't be resized. A future version will allow this to be configured. (This does not affect IExtractImage or the Linux versions.)

With regards to the compatibility issue: Some of the GameCube discs I've tested (including D87E01) have Shift-JIS filenames. In order to compare these properly, the filenames have to be converted to Unicode. On Windows, this is done using code page 932 as the source encoding; on Linux, this was done using "Shift-JIS" via iconv. It turns out that one character was incorrectly mapped by the Unicode Consortium back in the early 90s: the "wave dash" character.

In Shift-JIS encoding, wave dash (0x8160) looks like this: ~
When the Unicode Consortium mapped it to U+301C in Unicode 1.1 (June 1993), they incorrectly inverted it: 〜
Unicode did finally fix it in Unicode 8.0 (so the above two symbols might look identical on some newer systems), but a lot of older fonts still have the incorrect mapping.

Windows' code page 932 mapping replaces the wave dash symbol with U+FF5E, FULLWIDTH TILDE. This isn't an accurate mapping logically, but it has the correct symbol. (This is what I used for the first wave dash symbol above.)
iconv's "Shift-JIS" encoding maps the wave dash symbol to U+301C, so it looks wrong with older fonts.

Solution: Use iconv's "CP932" encoding, which is identical to Windows. This makes more sense based on the source material, given that most GameCube games were developed on Windows systems in the first place.

(insert some joke about wave dash exploits here :V)
 
Last edited by GerbilSoft, , Reason: +joke

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
So I got a little bit distracted from finishing up the last few blockers and I was getting annoyed that my GameCube save files were all showing unknown file icons.

rom-properties.2016-10-12.73780ef4.GCI.png


The ROM Properties extension now supports GameCube save files in GCI, GCS, and SAV formats. (Full memory card dumps aren't supported because they contain multiple files, though I may consider adding something like the folder previews that show multiple files on a single thumbnail later.)

EDIT: You might notice that the bottom two lines of the Eternal Darkness icon are missing. Turns out I derped a loop unroll optimization that broke CI8 GameCube icons on Windows. It's fixed in git now.
 
Last edited by GerbilSoft, , Reason: +Eternal Darkness derp
  • Like
Reactions: JaceCearK1

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
Some more distractions. :V (I'll get to the last remaining blockers for Beta 1 this weekend.)

rom-properties.2016-10-13.da4e0ae6.property-sheet.banner.icon.png


The property sheet now displays the banner and icon for files that have one. Not visible in this screenshot is the fact that it also supports animated icons, which are found in GameCube save files and Nintendo DSi ROM images. (The file browser portion won't show animated icons because neither Windows Explorer nor KDE Dolphin support them AFAIK.)
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
Status update: I'm basically done with code changes for the first beta release. Currently working on packaging scripts.
  • CMake's Debian package generator doesn't properly support building multiple DEB packages for different targets. It supports one package per component, but that results in a separate documentation package. So I've decided to just write Debian packaging rules myself. Turns out it's a lot easier now than it was a while back. (Then again, I used dolphin-emu's Debian package as a starting point.)
  • CMake can't build for more than one architecture at the same time, so I have to run at least four builds: Linux 32, Linux 64, Windows 32, and Windows 64.
  • The Windows 32-bit and 64-bit builds will need to be post-processed into a single ZIP file. The 32-bit version is still needed on 64-bit because 32-bit applications can't use 64-bit shell extensions.
If all goes well, the first beta release should be ready by the end of the week. :)
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
this looks really great.

any plans for Sony systems?
I started an initial PS1 save viewer (with the PSV format used by PS1 on PS3), but there was some issue with 16x16 icons on Windows. (The top-half was showing up weird.) I'll look into some more Sony formats later. (Maybe PSP eboots?) [Sidenote: Apparently PS2 save files don't have icons; they have 3D models. I don't think I'm implementing that anytime soon. :V]

Anyways, v0.8 (Beta 1) is out, and I added download links to the OP.
 

GerbilSoft

Well-Known Member
OP
Member
Joined
Mar 8, 2012
Messages
2,395
Trophies
2
Age
34
XP
4,249
Country
United States
Today's hax:

rp.2016-10-26.0bc32fba.DreamcastSave.png


Support for Dreamcast VMS icons. VMI and DCI files aren't supported yet, nor are ICONDATA_VMS files. (VMI will require some extra work because it has to load the icon from the VMS file.)
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: https://youtu.be/IihvJBjUpNE?si=CsvoEbwzNKFf0GAm cool