# ROM Properties Page shell extension



## GerbilSoft (Sep 19, 2016)

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.









Spoiler: rom-properties 1.3.1



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.










Spoiler: rom-properties 1.2



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:

Windows: 32-bit/64-bit combined package
Ubuntu 16.04 "Xenial", 17.04 "Zesty", 17.10 "Artful": See the PPA.
Note: For Windows, you will need the MSVC 2017 runtime:

32-bit: https://go.microsoft.com/fwlink/?LinkId=746571
64-bit: https://go.microsoft.com/fwlink/?LinkId=746572
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:






Or maybe you're using Nintendont for GameCube:






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


----------



## FAST6191 (Sep 20, 2016)

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.


----------



## JaceCearK1 (Sep 26, 2016)

@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 (Sep 26, 2016)

JaceCearK1 said:


> @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 (Sep 26, 2016)

GerbilSoft said:


> since it supports multiple systems,





GerbilSoft said:


> 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 (Sep 26, 2016)

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.)


----------



## migles (Sep 26, 2016)

GerbilSoft said:


> 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


----------



## JaceCearK1 (Sep 26, 2016)

GerbilSoft said:


> The icons are extracted from the ROM image when requested by the file browser.


How can I tell Windows how to access the data? Are there certain API-calls or Registry-Edits that have to be done?


----------



## GerbilSoft (Sep 26, 2016)

JaceCearK1 said:


> 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.



migles said:


> 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.


----------



## JaceCearK1 (Sep 26, 2016)

I just want Windows to show the DS games' icon when accessing the file via Windows Explorer, just like it is shown here:


Spoiler






GerbilSoft said:


>


----------



## GerbilSoft (Sep 26, 2016)

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.


----------



## JaceCearK1 (Sep 26, 2016)

@GerbilSoft 
Alright, thank you very much!


----------



## CheatFreak47 (Oct 10, 2016)

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.


----------



## GerbilSoft (Oct 10, 2016)

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)


----------



## GerbilSoft (Oct 12, 2016)

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.






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.


----------



## GerbilSoft (Oct 14, 2016)

Some more distractions. :V (I'll get to the last remaining blockers for Beta 1 this weekend.)






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 (Oct 20, 2016)

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.


----------



## Flame (Oct 24, 2016)

this looks really great.

any plans for Sony systems?


----------



## GerbilSoft (Oct 24, 2016)

Flame said:


> 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 (Oct 27, 2016)

Today's hax:






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.)


----------



## GerbilSoft (Nov 7, 2016)

Some new updates (no screenshot this time): I've implemented initial support for displaying icons from .SMDH and .3DSX files, which are commonly used for 3DS homebrew. I have some preliminary code for unencrypted CIAs, and should be able to implement that as well as support for unencrypted 3DS ROMs.

Support for encrypted CIAs and 3DS ROMs probably won't happen until (unless?) the boot ROM is dumped.

Note that even for encrypted ROMs, there's still unencrypted sections. For example, CCI images (.3ds) have a plaintext product code, which can be used for GameTDB cover art fetches.


----------



## GerbilSoft (Nov 20, 2016)

And now for something completely different:







amiibo NFC dump parsing and thumbnails, courtesy of amiibo.life.

Special thanks to @CheatFreak47 since he suggested amiibo parsing and provided some useful information and data files.


----------



## GerbilSoft (Dec 5, 2016)

Quick update: I'm planning on releasing the next beta version (0.9) around Christmas. One major thing I want to have implemented by then that I haven't started yet is support for XFCE. This requires writing a property page plugin as well as an XFCE-compatible thumbnailer. (The thumbnailing interface on XFCE is the same as GNOME, so I should be able to support both with one project later on.)

Some other stuff that I've added recently:

Support for Wii RVT-R disc images. This doesn't do much, since the update partition doesn't have a full system menu, but it does at least identify the partitions as using the Debug key instead of Retail or Korean.
Added more amiibo entries and fixed a few that were incorrect.
Fixed a race condition in pngcheck that caused crashes on Windows 10 in some cases.
Things I also plan to have implemented for 0.9:

amiibo: Show owner and name. Requires the amiibo decryption key.
Wii: Display the opening.bnr game name.
Windows: Automatically pad icons so they're square, since Windows doesn't really like non-square icons. (It ends up being resized to be square, resulting in the wrong aspect ratio.)
Other stuff I've been working on that may or may not end up in 0.9:

Nintendo 3DS support. Currently handles .smdh, .3dsx, and unencrypted .cia files that have a META section. No support for .3ds/.cci or encrypted .cia yet. (Support for encrypted .3ds/.cci and .cia might not happen unless the protected boot ROM is dumped.)
Wii save files. Requires the SD common key, IV, and MD5 blanker. Contains a banner and icon similar to GameCube save files, but at a higher resolution. (Banner is 192x64; icon is 48x48.)
Does anyone have any suggestions for ROM images, save files, etc. that could be supported by ROM Properties? In particular, anything that has a built-in icon or thumbnail, or has a freely-available database of images like GameTDB.


----------



## GerbilSoft (Jan 3, 2017)

Today's progress update: There's now an XFCE (Thunar) property page plugin. Thumbnail generation isn't supported yet on XFCE, though if you had thumbnails generated using the KDE plugin, then they should show up in Thunar as well. (...with an exception if the filenames have spaces in them, because Thunar replaces spaces with urlencoded %20 when generating thumbnail names, whereas KDE and other desktop environments don't.) [Sidenote: GTK+ sucks. :V The XFCE plugin is currently more lines of code than the KDE version, and it doesn't have thumbnailing yet.]

I also came across a few GBA titles that aren't recognized, and I'm not sure if there's a really good way to add support for these other than hard-coded exceptions. Specifically, an expansion pack for the DS game "Daigasso! Band Brothers" was released in the form of a GBA cartridge. The ROM image has a GBA header at 0xA0, but it's missing the GBA logo data, so it isn't bootable as a standalone game. The missing logo data prevents rom-properties from recognizing it.


----------



## GerbilSoft (Jan 26, 2017)

Almost ready to release v0.9-beta2, and it has an important feature that makes it more usable on Windows systems:






On Windows, only one icon and thumbnail handler can be registered per file type. rom-properties didn't register itself for common extensions like .iso before, since if a .iso image wasn't supported (i.e. anything that isn't GameCube or Wii), it would show a blank file icon. The new feature stores the previously-registered icon and thumbnail handler in a backup key in the registry. If rom-properties doesn't support a file that it's registered for, then it uses the backup to call the previous icon handler. This lets us support GameCube and Wii disc images with .iso extensions as well as other .iso files.

The above screenshot shows a Smash Bros. Brawl disc image with .iso extension, as well as a generic disc image. (It's named "RSBE01.notwii.iso" because I had it in a larger directory before taking the screenshot, so I wanted it to be right next to the Smash Bros. Brawl image.) The Wii disc image shows the disc scan, while the not-a-Wii disc image shows the correct ISO file icon.


----------



## GerbilSoft (Feb 8, 2017)

v0.9-beta2 is out, with a bunch of new features and bugfixes. Check the OP for download links.


----------



## GerbilSoft (Mar 8, 2017)

So here's what I've been working on since v0.9-beta2:

Parser for Windows/DOS EXEs, DLLs, and other executable files. This includes NE, LE, LX, and PE formats. For NE and PE, the header flags are shown, and if a version resource is present, the version resource is displayed in a subtab. Not yet implemented is icon thumbnailing (for non-Windows platforms only) and manifest parsing (for PE).
The Nintendo DS, GameCube, and Wii parsers now support downloading cover scans. The user configuration program for determining which type of scan to use has not been started yet, but it will be included for v1.0.
Parser for Wii U disc images. (*.wud) Currently only shows the basic product information, including game ID, region, and system version; everything else is encrypted using a per-disc key. GameTDB downloads of disc and cover scans are available.
Support for multiple sizes of external images. This will allow e.g. downloading the "default" image for small thumbnails, and then downloading "large" images if the thumbnail size is increased. Supported for Nintendo DS and Wii U; support for internal images (e.g. Windows executables) will be added later. An option to control downloading of large images will be added to the user configuration program, since that might not be wanted on low-bandwidth connections.
Some other stuff in progress:

Windows: Property tab for actual CD-ROM drives, e.g. if you insert a Wii DVD-R. Icon handling probably won't be added initially, since I don't want to conflict with the default CD-ROM icon handler.
Nintendo 3DS parser. Currently only supports standalone .smdh and .3dsx files, and I think unencrypted .cia files that have a META section. Will be adding support for encrypted .cci/.3ds for GameTDB image downloading and partition table viewing; for decrypted .cci/.3ds and .cia, it will parse the icon as well.
I'm still looking for feature suggestions and/or code contributions. If you have any ideas, feel free to reply.


----------



## GerbilSoft (Mar 26, 2017)

And here's the first public screenshot of the Nintendo 3DS parser!






The following file formats are currently supported:

.smdh: Shows text fields, region code, and age ratings. Icon is also extracted.
.3dsx: Shows the SMDH section if it's available.
Encrypted .3ds (.cci): Shows some plaintext card information like media ID and product code, plus a partition listing. Cover art can be downloaded from GameTDB.
Decrypted .3ds: Same as encrypted, but can also extract the icon and other SMDH fields.
Zero-Key .3ds: Same as decrypted. Used by some homebrew. (This is basically encrypting with a key that consists of all zeroes.)
Encrypted .cia: Shows title ID, version, and contents table.
Decrypted .cia: Same as encrypted, but can also extract the icon and other SMDH fields, and can download cover art from GameTDB. DSiWare CIAs will also show a subtab showing the SRL header, which is basically what you'd see if you extracted the .SRL and viewed its properties by itself.
Other things I need to test:

System software, e.g. firmware updates.
DSi system software repackaged as CIAs, e.g. PictoChat.
DLC and game updates.
SDK software.


----------



## GerbilSoft (May 5, 2017)

Getting close to a 1.0 release. I'm probably going to postpone the configuration UI, but the actual functionality is there. You'll just need to edit the config file manually.

For 1.1, I'd like to add a set of "generic" icons for the systems to use if images aren't available. These should be in multiple sizes with alpha-transparency, starting with 128x128 or 256x256 as the largest, plus a small version at 16x16 and/or 24x24. (The small versions may need adjustments; for 32x32 and larger, downscaling should work.) If anyone would like to contribute these icons, please let me know. (The images must have a free redistribution license, e.g. CC-BY-SA or GPLv2.)

Icons needed: (listed by ROM Properties class)

Sega Mega Drive (JP and US variants), Sega CD, Sega 32X, Sega Pico
GameCube, Wii3, Triforce
Nintendo DS, DSi1
Nintendo Game Boy, Game Boy Color
Nintendo Game Boy Advance
Nintendo 64
Super NES (JP/PAL and US variants)
Sega Dreamcast save file (VMU image?)
PlayStation save file
Virtual Boy
Nintendo amiibo
Nintendo Entertainment System (JP and Intl variants)
Wii U3
Nintendo 3DS1
EXE2
1For DS(i) and 3DS, I can probably reuse the image from TWLoader.
2For EXE, I can reuse the image from one of KDE's icon sets. There will be multiple variants for the different operating systems that use EXE and related formats, e.g. MS-DOS, Win16, OS/2, Win32, Xbox, and EFI. There will also be variants for the different subtypes, e.g. DLLs and Win16 drivers.
3For 120mm disc-based systems, I might end up using a transparent overlay on top of the system's optical disc icon. This won't work too well for GameCube, though.


----------



## GerbilSoft (May 20, 2017)

rom-properties 1.0 is out now. See the OP for changes and downloads.

Among other things, it now supports encrypted 3DS ROMs, thanks to last night's Boot9Strap release. Keys are NOT included; you'll need to add them to keys.conf yourself.


----------



## chronoss (May 20, 2017)

I have no pic in propertie for my rom and others, is it normal ?


----------



## GerbilSoft (May 21, 2017)

chronoss said:


> I have no pic in propertie for my rom and others, is it normal ?


What ROM image are you viewing? If it's an encrypted 3DS CIA, you'll need to get the keys from a Boot9 dump.


----------



## chronoss (May 21, 2017)

GerbilSoft said:


> What ROM image are you viewing? If it's an encrypted 3DS CIA, you'll need to get the keys from a Boot9 dump.


I want this but i've not pic in all my .cia game


----------



## GerbilSoft (May 21, 2017)

chronoss said:


> I want this but i've not pic in all my .cia game


If the CIAs are encrypted, then you either need to decrypt them, or dump the Boot9 keys and add them to keys.conf.

Assuming you have a 3DS with Boot9Strap, you can get Boot9.bin by holding Start+Select+X while turning the system on. Boot9Strap will dump boot9.bin, boot11.bin, and otp.bin to the /Boot9Strap directory.

You'll then need to open boot9.bin in a hex editor, and create this file: C:\Users\[username]\AppData\Roaming\rom-properties\keys.conf - the file should contain the following:

```
[Keys]
ctr-scrambler=
ctr-Slot0x2CKeyX=
ctr-Slot0x3DKeyX=
ctr-Slot0x3DKeyY-0=
ctr-Slot0x3DKeyY-1=
```
You'll need to fill in the empty placeholders with the actual values.

The CTR scrambler constant and 0x3D KeyY values aren't available in the boot ROM, but they are available on the Internet.

The KeyX values can be found in the following places in boot9.bin. You'll need to copy them from the hex editor to the text file as ASCII hexadecimal: (all keys are 16 bytes, or 32 hexadecimal digits)

ctr-Slot0x2CKeyX: 0xD9D0
ctr-Slot0x3DKeyX: 0xDA20
These are all the keys needed for most 3DS retail ROMs. 3DS debug ROMs need a different set.

I'll probably add a key manager to rp-config in the next release to make it easier to import all of the BootROM keys from a boot9.bin file directly.


----------



## chronoss (May 21, 2017)

GerbilSoft said:


> If the CIAs are encrypted, then you either need to decrypt them, or dump the Boot9 keys and add them to keys.conf.
> 
> Assuming you have a 3DS with Boot9Strap, you can get Boot9.bin by holding Start+Select+X while turning the system on. Boot9Strap will dump boot9.bin, boot11.bin, and otp.bin to the /Boot9Strap directory.
> 
> ...


Thank but not easy for me


----------



## GerbilSoft (May 21, 2017)

chronoss said:


> Thank but not easy for me


Send me an email. My email address is my username at my username dot com.


----------



## chronoss (May 21, 2017)

GerbilSoft said:


> Send me an email. My email address is my username at my username dot com.


If you can help me, send me just a private message...


----------



## GerbilSoft (May 21, 2017)

chronoss said:


> If you can help me, send me just a private message...


I'm trying to help you get the keys, which can't be done via PM for obvious reasons. :V

There's also a sheet on Google Sheets that contains AES keys for 3DS, and it has been updated with the Boot9 keys. You can search for it on Google using the correct search terms.


----------



## chronoss (May 21, 2017)

GerbilSoft said:


> I'm trying to help you get the keys, which can't be done via PM for obvious reasons. :V
> 
> There's also a sheet on Google Sheets that contains AES keys for 3DS, and it has been updated with the Boot9 keys. You can search for it on Google using the correct search terms.


So, i'm waiting your next update to make it easier


----------



## GerbilSoft (May 21, 2017)

chronoss said:


> So, i'm waiting your next update to make it easier


Or you could just email me. :V Also some of the keys aren't in boot9.bin, which makes it harder. (aeskeydb.bin might have it, but those seem to be encrypted, probably using a boot9.bin key.)


----------



## chronoss (May 21, 2017)

GerbilSoft said:


> Or you could just email me. :V Also some of the keys aren't in boot9.bin, which makes it harder. (aeskeydb.bin might have it, but those seem to be encrypted, probably using a boot9.bin key.)


ok

And thanks for you help, it work very well







@GerbilSoft : You can't delete the litle white box in right side ?


----------



## GerbilSoft (May 22, 2017)

chronoss said:


> @GerbilSoft : You can't delete the litle white box in right side ?


That's a Windows thing that appears if you have the .CIA file type associated with some program. I think there's an Explorer option to hide it.

...though it isn't showing up on the Bravely Second CIAs for some reason.


----------



## chronoss (May 22, 2017)

GerbilSoft said:


> That's a Windows thing that appears if you have the .CIA file type associated with some program. I think there's an Explorer option to hide it.
> 
> ...though it isn't showing up on the Bravely Second CIAs for some reason.


Why with Bravely Second CIAs isn't showing ?


----------



## eduall (May 30, 2017)

no gamecube .raw support.. but u're cool bro!


----------



## GerbilSoft (May 31, 2017)

eduall said:


> no gamecube .raw support.. but u're cool bro!


GameCube .raw support is harder because it's more like a collection of save files instead of a single file. I'd have to determine some way of selecting which icon(s) to show on a picture of a memory card.


----------



## eduall (Jun 1, 2017)

GerbilSoft said:


> GameCube .raw support is harder because it's more like a collection of save files instead of a single file. I'd have to determine some way of selecting which icon(s) to show on a picture of a memory card.


u're right, but in my case exist a memory card for each game... with the gamecube ID

cuz i use Memory card emulation with nintendont


----------



## GerbilSoft (Jun 12, 2017)

I'm getting close to a 1.1 release. Major new features in 1.1 include:

The configuration UI, rp-config, is now available in the KDE plugins.
XFCE thumbnailing is now supported.
A KeyManager UI is now included in rp-config for configuring encryption keys.
Encrypted DSiWare CIAs are now supported. (Requires Slot0x3D keys.)
MegaDrive: The ROM header for ROMs locked onto Sonic & Knuckles is now displayed in a separate tab.
I will probably not be porting rp-config to GTK+ because, among other things, the Glade UI builder tool is absolutely terrible. The KDE version works on GTK+ desktops, though.

Does anyone have any recommendations and/or suggestions for anything else to add to 1.1 or future versions?


----------



## GerbilSoft (Jul 4, 2017)

v1.1 is up; see the first post for changes.

EDIT: Lines of code statistics provided by sloccount:

```
SLOC    Directory       SLOC-by-Language (Sorted)
24587   libromdata      cpp=24587
17636   librpbase       cpp=17052,ansic=584
7187    win32           cpp=7064,ansic=123
3301    libwin32common  cpp=2752,ansic=549
3189    kde             cpp=3189
2527    gtk             cpp=2415,ansic=78,xml=34
1230    rpcli           cpp=1230
660     libcachemgr     cpp=660
540     svrplus         cpp=540
395     rp-stub         ansic=395
255     top_dir         ansic=255


Totals grouped by language (dominant language first):
cpp:          59489 (96.72%)
ansic:         1984 (3.23%)
xml:             34 (0.06%)
```
The librpbase directory includes a modified copy of pngcheck, which is 7,279 lines of code. The XML file in gtk/xfce/ is 34 lines, and is a copy of the FreeDesktop.org Specialized Thumbnailer specification. Everything else was written by either me or other rom-properties contributors.


----------



## chronoss (Jul 7, 2017)

Thanks again for the update, all work very well


----------



## GerbilSoft (Jul 16, 2017)

And now, time for a file format that isn't exactly a ROM image, but is very common with hacking Sega titles on Dreamcast and newer systems:






Currently only supports GVR textures with RGB5A3 or DXT1 encoding. (The above textures are from SA2 PC.) I plan on adding the rest of the GVR and all of the PVR encodings as well.


----------



## GerbilSoft (Jul 31, 2017)

And now, building on the PVR decoder:






Thumbnailing for Dreamcast track03.bin files! This loads the 0GDTEX.PVR file from the disc image and decodes it.

Current limitations:

Only supports standalone track03.bin files. (or track03.iso)
Some games (ChuChu Rocket!) have two data tracks: track03.bin, a bunch of audio tracks, then track19.bin. 0GDTEX.PVR is listed in track03.bin's directory, but it's actually located in track19.bin. This isn't supported at the moment. I may add .GDI/.CUE support later, though IThumbnailProvider on Windows doesn't provide absolute paths, which makes this harder.


----------



## chronoss (Jul 31, 2017)

GerbilSoft said:


> And now, building on the PVR decoder:
> 
> 
> 
> ...


Where is he updated file ?


----------



## GerbilSoft (Jul 31, 2017)

chronoss said:


> Where is he updated file ?


No release yet. It's on the feature/Dreamcast branch. If you can compile from source, you can try it out.

(Requires cmake, nasm, and on Windows, Visual Studio 2010 or later.)


----------



## chronoss (Jul 31, 2017)

GerbilSoft said:


> No release yet. It's on the feature/Dreamcast branch. If you can compile from source, you can try it out.
> 
> (Requires cmake, nasm, and on Windows, Visual Studio 2010 or later.)


Sorry, i can't


----------



## GerbilSoft (Jul 31, 2017)

Another new thing for the next version:






Nintendo Badge Arcade parsing. Currently supports PRBS and CABS files, as well as Mega Badges. (Tested with a 1x2 badge; other sizes should work as well, but aren't tested yet.)

@CheatFreak47 says I should tag @TheMachinumps here.

I'll probably release v1.2 once I add a few more disc image formats to the Dreamcast parser.


----------



## AntiMach (Jul 31, 2017)

GerbilSoft said:


> Another new thing for the next version:
> 
> 
> 
> ...


Nice! =)


----------



## CheatFreak47 (Jul 31, 2017)

@GerbilSoft Lil-G on IRC said he has no idea what the problem is either. Little help?

So, I have freshly installed the latest NASM, Cmake, and VS2017 Community- which afaik are all the prereqs.
So I went ahead and went to my C:/dev/ folder and did the following, one after another after the last command finished.

> cd C:\dev\
> git clone --recursive https://github.com/GerbilSoft/rom-properties.git
> cd rom-properties
> mkdir build
> cd build
> cmake .. -G "Visual Studio 15 2017 Win64"

cmake seemed to be successful, it generated all the files I needed (I think) so I went ahead and opened the solution it made in VS2017 and did "build solution" for debug x64, but- long story short, it results in several errors, and I think all of it stems from libpng which just refuses to build for some reason.

I keep getting _"Failed to generate pnglibconf.tf5"_, resulting in VS2017 outputting _"error MSB6006: "cmd.exe" exited with code 1."_
Googling the "Failed to generate" error lead me to here, which seems to suggest it was an issue building in VS2015, but I can't for the life of me figure out what the source of the problem is.

Here is a paste of the complete build output as well.
https://pastebin.com/raw/DbweULT9


----------



## GerbilSoft (Jul 31, 2017)

CheatFreak47 said:


> @GerbilSoft Lil-G on IRC said he has no idea what the problem is either. Little help?
> 
> So, I have freshly installed the latest NASM, Cmake, and VS2017 Community- which afaik are all the prereqs.
> So I went ahead and went to my C:/dev/ folder and did the following, one after another after the last command finished.
> ...


extlib/libpng/scripts/checksym.awk should use Unix line endings even on Windows. Use notepad++ or dos2unix to convert it.

I'm guessing you have autocrlf enabled. I'll need to add a .gitattributes entry to force this specific file to use LF line endings regardless of host platform.

EDIT: options.awk too. Probably all of the *.awk files.

EDIT 2: Not the AWK files - it's the DFA input file: extlib/libpng/scripts/pnglibconf.dfa


----------



## CheatFreak47 (Jul 31, 2017)

GerbilSoft said:


> extlib/libpng/scripts/checksym.awk should use Unix line endings even on Windows. Use notepad++ or dos2unix to convert it.
> 
> I'm guessing you have autocrlf enabled. I'll need to add a .gitattributes entry to force this specific file to use LF line endings regardless of host platform.
> 
> ...


Sure enough, Dos2Unix on the dfa file worked like a charm, built fine after that.
Many thank. 

Edit: So cabs all seem to be working fine




buuuut, bugs were found in the prb support, seems theres two issues- some badges are squashed, and some aren't put together correctly.





posted issue on the tracker: https://github.com/GerbilSoft/rom-properties/issues/93


----------



## AntiMach (Aug 1, 2017)

CheatFreak47 said:


> Sure enough, Dos2Unix on the dfa file worked like a charm, built fine after that.
> buuuut, bugs were found in the prb support, seems theres two issues- some badges are squashed, and some aren't put together correctly.


There is an easy fix for that.

Instead of putting every single piece together, you can just simply use the badge preview, which is at offset 0x1100 and has both the 64x64 (length of 0x2800) and 32x32 (length of 0xA00, comes right after the 64x64 image, might be useless for this) images.


----------



## CheatFreak47 (Aug 1, 2017)

TheMachinumps said:


> There is an easy fix for that.
> 
> Instead of putting every single piece together, you can just simply use the badge preview, which is at offset 0x1100 and has both the 64x64 (length of 0x2800) and 32x32 (length of 0xA00, comes right after the 64x64 image, might be useless for this) images.



He fixed it already in the rom-properties code, the main reason I suggested this is so it'd be easier to put together badge sets using official data.

@TheMachinumps in case you can't be bothered to build it, I made a release package of the latested master at this time.
https://u.teknik.io/8Kb1p.7z (note that this is an unofficial build and is not a release)


----------



## GerbilSoft (Aug 1, 2017)

TheMachinumps said:


> There is an easy fix for that.
> 
> Instead of putting every single piece together, you can just simply use the badge preview, which is at offset 0x1100 and has both the 64x64 (length of 0x2800) and 32x32 (length of 0xA00, comes right after the 64x64 image, might be useless for this) images.


I had the tiling rows/columns reversed. Easy fix.

I was wondering what was stored at 0x1100 for mega badges, since the actual badge tile data starts at 0x4300. I guess a small preview makes sense. Not sure if I'll make use of that for anything.


----------



## GerbilSoft (Aug 5, 2017)

Due to some issues, I had to reset my GitHub repository. All of the code is still there, though I need to reupload the releases.

If you were previously watching the repo or had it starred, you'll need to rewatch/restar it.


----------



## k7ra (Aug 30, 2017)

How fast it create tb for cia and 3ds?
Because it skip all


----------



## GerbilSoft (Oct 2, 2017)

k7ra said:


> How fast it create tb for cia and 3ds?
> Because it skip all
> View attachment 97235


You need the encryption keys set up in order for rom-properties to handle encrypted CIA and 3DS files. A sample keys.conf file is included, but no keys are provided. (There's a Pastebin with the keys available; search for pastebin keys.conf.)

I'm most likely going to release rom-properties 1.2 this week, though I'm also going to implement one more thing: CDI parsing for Dreamcast. Redream's CDI parser is fairly readable, so I'm going to write up a more comprehensive CDI format documentation and implement my own parser for rom-properties.


----------



## GerbilSoft (Nov 12, 2017)

v1.2 is out. Check the first post for more information.


----------



## chronoss (Nov 13, 2017)

GerbilSoft said:


> v1.2 is out. Check the first post for more information.


Thanks !


----------



## GerbilSoft (May 10, 2018)

Getting closer to a v1.3 release. The major change in v1.3 is support for localization, though there's only going to be a few translations at first.

I have also added support for other systems, including the Tiger game.com:






Other newly-supported formats in the upcoming v1.3 release include:

Texture formats: Khronos KTX, Valve VTF, Valve VTF3
Texture compression formats: ETC1, ETC2, RGTC, LATC
ELF executables (including Wii U RPX/RPL)


----------



## GerbilSoft (Jun 3, 2018)

v1.3 is out. See the first post for more information.


----------



## GerbilSoft (Jun 13, 2018)

v1.3.1 is out. Minor bugfix for a crash that occurred on Windows for certain file types whose internal image widths were not a multiple of 8.


----------



## jelbo (Jul 24, 2018)

This is fantastic. Great job. The attention to detail is insane. Great UI choices as well in the dialogs.


----------



## GuyInDogSuit (Jul 31, 2018)

Doesn't seem to work with GameCube GCZ images, WiiU WUX files, or some CIA dumps. Would be cool to have support for Sony systems as well as older Nintendo systems (SNES, NES, GBA). Switch support would be awesome, too.

I know that's a lot to ask, but it's worth a shot making the suggestions and seeing what happens.


----------



## k7ra (Jul 31, 2018)

GuyInDogSuit said:


> Doesn't seem to work with GameCube GCZ images, WiiU WUX files, or some CIA dumps. Would be cool to have support for Sony systems as well as older Nintendo systems (SNES, NES, GBA). Switch support would be awesome, too.
> 
> I know that's a lot to ask, but it's worth a shot making the suggestions and seeing what happens.


All my cia dumps work, SONY roms are iso-cso images, Switch roms in early stage and format can change with releasing free emunand


----------



## GerbilSoft (Jul 31, 2018)

@GuyInDogSuit WUX should definitely be supported. Let me know what image you're trying to use and what tool you used to create it, and I'll try it myself over the weekend.

For CIA dumps, make sure you have all the keys configured in %APPDATA%\rom-properties\keys.conf . If not, search Google for "keys.conf for rom-properties". If the CIAs still aren't working, let me know.

Switch ROMs are going to be a pain because of the multiple layers of encryption. I'd rather not require a copy of hactool to be downloaded separately. (I don't think I can include a copy of hactool in the packages due to license restrictions or something similar.)

I've been considering adding support for various PlayStation images, but haven't gotten around to it. (PS Vita card images use exFAT; other discs use ISO-9660 and/or UDF.)


----------



## GuyInDogSuit (Aug 1, 2018)

GerbilSoft said:


> @GuyInDogSuit WUX should definitely be supported. Let me know what image you're trying to use and what tool you used to create it, and I'll try it myself over the weekend.



I don't know, it's not my dump. As far as the keys.conf goes, isn't there a way to update it via internet? A few of the CIAs that don't show icons are fairly old, but popular games, so I would think it exists.


----------



## GuyInDogSuit (Aug 4, 2018)

No....?


----------



## SomeGamer (Aug 10, 2018)

I was so looking forward to using this but installing it makes Windows Explorer slow down a lot.


----------



## SomeGamer (Aug 10, 2018)

OK so I got it to work but the keys didn't stick when added through the config exe. Manually adding them to keys.conf did work. Now I'm getting invalid key errors on some .cia files despite the config showing every key as valid.


----------



## GerbilSoft (Jan 28, 2019)

SomeGamer said:


> I was so looking forward to using this but installing it makes Windows Explorer slow down a lot.


That's odd, I haven't noticed any slowdown in Explorer when testing on Windows.



SomeGamer said:


> OK so I got it to work but the keys didn't stick when added through the config exe. Manually adding them to keys.conf did work. Now I'm getting invalid key errors on some .cia files despite the config showing every key as valid.


Not sure why your CIAs are getting invalid key errors. I've tested a bunch of different types, including retail-encrypted and debug-encrypted.

Meanwhile, here's a sneak peek at something I'm adding to rom-properties v1.4:


----------



## chronoss (Feb 8, 2019)

GerbilSoft said:


> Meanwhile, here's a sneak peek at something I'm adding to rom-properties v1.4:


Any news ?


----------



## GuyInDogSuit (Mar 11, 2019)

Thankfully there was an update that fixed the 2-disc GameCube games causing windows to crash. Couldn't figure out why for the life of me why until i checked for an update.


----------



## MAXLEMPIRA (Jun 27, 2019)

@GerbilSoft first of all, thanks for this awesome tool, I was looking for something like this for every system since DS era and Win7 were there was a tool like this.
Now I been looking for good cia dumps (No RF, no 3ds to cia, etc) and this is helping me a lot. I've got some cias that are Region Free, and in rom properties there are checkboards... is it possible to uncheck them to revert Region Free?


----------



## CheatFreak47 (Jun 27, 2019)

MAXLEMPIRA said:


> @GerbilSoft first of all, thanks for this awesome tool, I was looking for something like this for every system since DS era and Win7 were there was a tool like this.
> Now I been looking for good cia dumps (No RF, no 3ds to cia, etc) and this is helping me a lot. I've got some cias that are Region Free, and in rom properties there are checkboards... is it possible to uncheck them to revert Region Free?


Rom properties is a property viewer, not an editor.


----------



## GerbilSoft (Jun 27, 2019)

rom-properties doesn't have signature checks, so it can't tell you if a given CIA is legitimately signed or not. Likewise, it doesn't support editing.

Merely changing the region flags isn't going to suddenly turn it into a "good" CIA if the signature is incorrect.


----------



## MAXLEMPIRA (Jun 27, 2019)

Thanks, well. I set it up and some files are working and some nowpe. I've that keys.config file from pastebin and after put it in the folder .3ds files are showing the icon, but .cia, .wad and .wbfs are showing nothing, any idea? With PlayStation 2 only works for .iso or .cue/.bin are working too? Because I can see anything too haha sorry for this


----------



## GerbilSoft (Jun 27, 2019)

keys.conf goes in %APPDATA%\rom-properties\keys.conf.

.3ds and .cia files should all show icons by default. .wad files aren't supported by v1.3; v1.4 (not released yet) supports them, and should automatically download covers from GameTDB.

.wbfs files are supported regardless of keys; it should automatically download covers from GameTDB.

PlayStation disc images (PS1, PS2, PS3, PS4, PSP) aren't supported at all at the moment.


----------



## chronoss (Jun 29, 2019)

GerbilSoft said:


> keys.conf goes in %APPDATA%\rom-properties\keys.conf.
> 
> .3ds and .cia files should all show icons by default. .wad files aren't supported by v1.3; v1.4 (not released yet) supports them, and should automatically download covers from GameTDB.
> 
> ...


We waiting the new release


----------



## GerbilSoft (Mar 15, 2020)

rom-properties 1.5 is out! (I decided to reuse the original thread instead of the 1.4 thread, since there's more people watching this thread.) Check the first post for more information.

EDIT: Link to the 1.4 thread:
https://gbatemp.net/threads/rom-properties-page-shell-extension-new-thread.545224/


----------



## GuyInDogSuit (Mar 18, 2020)

Thank you for your continued support.


----------



## Luke94 (Jan 10, 2022)

How to remove SD Card from New Nintendo 3DS XL because I wanted to play Metroid 2 Samus Returns,but I didn't have enough free space on my Nintendo 2DS.?


----------

