[libromdata] Nintendo3DS: Add unofficial MIME types used by Citra.

This should fix issues on Linux systems where Nintendo 3DS files weren't
detected by rom-properties due to Citra registering its own MIME types.

See issue #382: Errors in KDE
This particular issue was diagnosed by @dnmodder.
This commit is contained in:
David Korth 2023-08-20 13:28:02 -04:00
parent 271099ea43
commit afa734421c
5 changed files with 38 additions and 4 deletions

View File

@ -48,6 +48,7 @@
"Open" dialog properly.
* Windows rp-config: Fix the Key Manager tab not showing up at all.
* This regressed in v2.2.1.
* Nintendo3DS: Added non-standard MIME types used by Citra.
* Other changes:
* Nintendo3DS: The "Options" menu no longer shows a grayed-out "Extract SRL"

View File

@ -80,6 +80,18 @@ const char *const Nintendo3DSPrivate::mimeTypes[] = {
"application/x-nintendo-3ds-cia", // NOT on fd.o
"application/x-nintendo-3ds-ncch", // NOT on fd.o
// Unofficial MIME types.
// NOT used by N3DS_RomType.
// TODO: Add a specific type for CXI?
"application/x-nintendo-3ds-cxi", // NOT on fd.o
// Unofficial MIME types from Citra.
// NOT used by N3DS_RomType.
"application/x-ctr-3dsx",
"application/x-ctr-cci",
"application/x-ctr-cia",
"application/x-ctr-cxi",
nullptr
};
const RomDataInfo Nintendo3DSPrivate::romDataInfo = {

View File

@ -97,6 +97,9 @@ const char *const Nintendo3DS_SMDH_Private::mimeTypes[] = {
// TODO: Get these upstreamed on FreeDesktop.org.
"application/x-nintendo-3ds-smdh",
// Unofficial MIME types from Citra.
"application/x-ctr-smdh",
nullptr
};
const RomDataInfo Nintendo3DS_SMDH_Private::romDataInfo = {

View File

@ -78,15 +78,19 @@ application/x-gba-rom # GameBoyAdvance
application/x-game-com-rom # GameCom
application/x-neo-geo-pocket-rom # NGPC
application/x-neo-geo-pocket-color-rom # NGPC
application/x-nintendo-3ds-executable # Nintendo3DS
application/x-nintendo-3ds-rom # Nintendo3DS
application/x-wonderswan-rom # WonderSwan
application/x-wonderswan-color-rom # WonderSwan
model/x.stl-binary # Nintendo3DS (?)
image/x-3ds # Nintendo3DS (?)
application/x-nintendo-3ds-executable # Nintendo3DS
application/x-nintendo-3ds-cia # Nintendo3DS
application/x-nintendo-3ds-cxi # Nintendo3DS
application/x-nintendo-3ds-ncch # Nintendo3DS
application/x-nintendo-3ds-rom # Nintendo3DS
application/x-ctr-3dsx # Nintendo3DS
application/x-ctr-cci # Nintendo3DS
application/x-ctr-cia # Nintendo3DS
application/x-ctr-cxi # Nintendo3DS
application/x-nintendo-3ds-smdh # Nintendo3DS_SMDH
application/x-ctr-smdh # Nintendo3DS_SMDH
application/x-nintendo-ds-rom # NintendoDS
application/vnd.nintendo.nitro.rom # NintendoDS
application/x-nintendo-dsi-rom # NintendoDS
@ -94,6 +98,8 @@ application/x-psp-ciso-image # PSP
application/x-psp-dax-image # PSP
application/x-psp-jiso-image # PSP
application/x-psp-ziso-image # PSP
application/x-wonderswan-rom # WonderSwan
application/x-wonderswan-color-rom # WonderSwan
# Other
application/x-nintendo-amiibo # Amiibo

View File

@ -596,6 +596,7 @@
<comment>Nintendo 3DS homebrew application</comment>
<sub-class-of type="application/x-executable"/>
<generic-icon name="application-x-executable"/>
<alias type="application/x-ctr-3dsx"/>
<glob pattern="*.3dsx"/>
<magic priority="50">
<match value="3DSX" type="string" offset="0"/>
@ -605,6 +606,7 @@
<comment>Nintendo 3DS ROM image</comment>
<sub-class-of type="application/x-raw-disk-image"/>
<generic-icon name="application-x-executable"/>
<alias type="application/x-ctr-cci"/>
<glob pattern="*.3ds"/>
<glob pattern="*.3dz"/>
<glob pattern="*.cci"/>
@ -630,6 +632,7 @@
<comment>Nintendo 3DS installable archive</comment>
<sub-class-of type="application/x-archive"/>
<generic-icon name="package-x-generic"/>
<alias type="application/x-ctr-cia"/>
<glob pattern="*.cia"/>
</mime-type>
<mime-type type="application/x-nintendo-3ds-ncch">
@ -641,12 +644,21 @@
<match value="NCCH" type="string" offset="256"/>
</magic>
</mime-type>
<mime-type type="application/x-nintendo-3ds-cxi">
<comment>Nintendo 3DS executable</comment>
<sub-class-of type="application/x-nintendo-3ds-ncch"/>
<generic-icon name="application-x-executable"/>
<!-- NOTE: CXI is a specific type of NCCH. -->
<alias type="application/x-ctr-cxi"/>
<glob pattern="*.cxi"/>
</mime-type>
<!-- Nintendo3DS_SMDH -->
<mime-type type="application/x-nintendo-3ds-smdh">
<comment>Nintendo 3DS icon file</comment>
<sub-class-of type="image/x-generic"/>
<generic-icon name="image-x-generic"/>
<alias type="application/x-ctr-smdh"/>
<glob pattern="*.smdh"/>
<magic priority="50">
<match value="SMDH" type="string" offset="0"/>