IridiumIO / CompactGUI

Transparently compress active games and programs using Windows 10/11 APIs
GNU General Public License v3.0
5.11k stars 238 forks source link

The program closes when I try to compress the Program Files folder #395

Closed Starbuck1991 closed 8 months ago

Starbuck1991 commented 9 months ago

I've been testing the new 3.0.4 version, and it exits when I try to compress Program Files (not Program Files (x86), this works as intended). It also happens with some other C: folders, like Users and ProgramData.

MrMegaWatt13 commented 9 months ago

This is because when a folder has around more than 10,000 Files, It crashes for some reason, probably because it can't handle the amount of files, you can try an alpha version of V3 or V2 as an substitute until it gets fixed.

Starbuck1991 commented 9 months ago

The point is that this did not happen with v3.0.3, at least that I have noticed. So, it seems likely that it might be a bug introduced in the new version, isn't it?

BuyMyMojo commented 9 months ago

I got pointed here and this does sound more accurate of an issue I am experincing.

I don't know if it could be a specific file type or naming convention but here is the content of the folders I have found that don't work:

F:\PS2SMB\DVD

``` F:\PS2SMB\DVD games.bin Ghost in the Shell - Stand Alone Complex (USA).iso SCPS_150.37.Ratchet Clank (Jap).iso SCUS_971.24.JAK DAXTER THE PRECURSOR LEGACY.iso SCUS_971.98.Sly Cooper Thievius Raccoonus.iso SCUS_971.99.Ratchet Clank.iso SCUS_972.68.Ratchet Clank - Going Commando.iso SCUS_973.53.Ratchet Clank - Up Your Arsenal.iso SCUS_974.29.JAK X - COMBAT RACING.iso SCUS_974.65.Ratchet Deadlocked.iso SCUS_976.15.Ratchet Clank - Size Matters.iso SLES_548.41.CRASH OF THE TITANS EU.iso SLES_552.04.Crash Mind Over Mutant EU.iso SLUS_201.44.METAL GEAR SOLID 2 SOL.iso SLUS_201.51.KLONOA 2 - LUNATEAS VEIL.iso SLUS_206.24.THE SIMPSONS - HIT RUN.iso SLUS_206.75.Baldurs Gate Dark Alliance II.iso SLUS_207.05.I-NINJA.iso SLUS_209.15.Metal Gear Solid 3 Snake Eater.iso SLUS_209.57.Scaler.iso SLUS_212.46.Charlie - ChocolateFactory.iso SLUS_216.21.PERSONA 3 FES.iso ```

F:\ROMS

``` F:\ROMS │ 3dsconv.exe │ 3dsconv.py │ boot9.bin │ config.ini │ crop-2.mkv │ crop-2.mp4 │ crop.mp4 │ Firmware 16.0.2.zip │ RPReplay_Final1691983381.mov │ ├───crop ├───gba │ │ 1986 - Pokemon Emerald (U)(TrashMan).gba │ │ Classic NES - the Legend of Zelda # GBA.GBA │ │ Legend of Zelda, The - The Minish Cap (U).gba │ │ Pokemon - Emerald Version (U).gba │ │ Pokemon - Fire Red (EASYCORE CHALLENGE).gba │ │ Pokemon - Fire Red Version (U) (V1.1).gba │ │ Pokemon - Leaf Green Version (U) (V1.1).gba │ │ Pokemon - Ruby Version (U) (V1.1).gba │ │ Pokemon - Sapphire Version (U) (V1.1).gba │ │ Pokemon Modern Emerald v1d0d1.gba │ │ Pokemon_ROWE.gba │ │ │ └───Fire Red - Easycore Challenge │ Lunar IPS.exe │ Pokémon Fire Red - Easycore Challenge.ips │ ├───gm9 │ └───in │ ├───boot9strap │ │ boot9strap.firm │ │ boot9strap.firm.sha │ │ │ ├───FBI │ │ FBI.cia │ │ │ ├───Luma3DS │ │ │ boot.firm │ │ │ │ │ └───luma │ │ config.bin │ │ │ └───sdcompiled │ │ boot.3dsx │ │ │ ├───1cia │ │ └───hb │ │ Anemone3DS.cia │ │ Checkpoint.cia │ │ DSP1.cia │ │ hblauncher_loader.cia │ │ lumaupdater.cia │ │ │ └───3ds │ FBI.3dsx │ ├───n64 │ Kirby 64 - The Crystal Shards (USA).z64 │ Super Mario 64 (USA).z64 │ ├───nds │ 1456 - Legend of Zelda - Phantom Hourglass, The (U)(Independent).nds │ 4273 - Pokemon Mystery Dungeon - Explorers of Sky (US).nds │ 4527 - Legend of Zelda - Spirit Tracks, The (US)(M3)(XenoPhobia).nds │ Ace Attorney Investigations - Miles Edgeworth.nds │ Ace Attorney Investigations 2.nds │ Chrono Trigger.nds │ Dragon Ball Z - Attack of the Saiyans.nds │ Final Fantasy III.nds │ Final Fantasy IV.nds │ Final Fantasy XII - Revenant Wings.nds │ Fire Emblem - Shadow Dragon.nds │ Legend of Zelda, The - Four Swords Anniversary Edition (Europe, Australia).nds │ Mario & Luigi - Bowser's Inside Story.nds │ Mario & Luigi - Partners in Time.nds │ New Super Mario Bros..nds │ Newer Super Mario Bros.nds │ Phoenix Wright - Ace Attorney - Justice for All.nds │ Phoenix Wright - Ace Attorney - Trials and Tribulations.nds │ Phoenix Wright - Ace Attorney.nds │ Plants vs. Zombies.nds │ Pokemon Black Version (DSi Enhanced).nds │ Pokemon Black Version 2 (DSi Enhanced).nds │ Pokemon Conquest (DSi Enhanced).nds │ Pokemon Diamond Version.nds │ Pokemon HeartGold Version.nds │ Pokemon Mystery Dungeon - Blue Rescue Team.nds │ Pokemon Mystery Dungeon - Explorers of Darkness.nds │ Pokemon Mystery Dungeon - Explorers of Sky.nds │ Pokemon Mystery Dungeon - Explorers of Time.nds │ Pokemon Pearl Version.nds │ Pokemon Pearl Version.sav │ Pokemon Platinum Version.nds │ Pokemon Ranger - Guardian Signs.nds │ Pokemon Ranger - Shadows of Almia.nds │ Pokemon Ranger.nds │ Pokemon SoulSilver Version.nds │ Pokemon Trozei!.nds │ Pokemon White Version (DSi Enhanced).nds │ Pokemon White Version 2 (DSi Enhanced).nds │ Professor Layton and the Curious Village.nds │ Professor Layton and the Diabolical Box.nds │ Professor Layton and the Last Specter.nds │ Professor Layton and the Unwound Future.nds │ Star Fox Command.nds │ Warhammer 40,000 - Squad Command.nds │ WarioWare - D.I.Y..nds │ WarioWare - Touched.nds │ Yoshi's Island DS.nds │ ├───PS3 ├───psp │ Ghost_In_The_Shell_Stand_Alone_Complex_USA_PSP-ARTiSAN.iso │ ├───psx │ └───Ghost in the Shell (USA) │ Ghost in the Shell (USA).bin │ Ghost in the Shell (USA).cue │ ├───snes └───switch Super Mario RPG [0100BC0018138000][v0][Base].nsp ``` it doesn't let me open the sub folders indavidually either

These are folders that do work:

F:\NDS SAVES

``` F:\NDS SAVES │ Pokemon Pearl Version │ Pokemon Pearl Version.sav │ Pokemon Platinum Version.ml1.sav │ Pokemon Platinum Version.sav │ Pokemon-platinum_Pre-Pokemon-Select.mln.sav │ └───SaveStates Pokemon Platinum Version.ml1 Pokemon-platinum_Pre-Pokemon-Select.mln ```

F:\PPSSPP

``` F:\PPSSPP │ d3dcompiler_47.dll │ d3dcompiler_47.x86.dll │ installed.txt │ PPSSPPWindows.exe │ PPSSPPWindows64.exe │ README.md │ ├───assets │ │ 7z.png │ │ asciifont_atlas.meta │ │ asciifont_atlas.zim │ │ compat.ini │ │ compatvr.ini │ │ font_atlas.meta │ │ font_atlas.zim │ │ gamecontrollerdb.txt │ │ knownfuncs.ini │ │ langregion.ini │ │ ppge_atlas.meta │ │ ppge_atlas.zim │ │ rargray.png │ │ Roboto-Condensed.ttf │ │ sfx_achievement_unlocked.wav │ │ sfx_back.wav │ │ sfx_confirm.wav │ │ sfx_leaderbord_submitted.wav │ │ sfx_select.wav │ │ sfx_toggle_off.wav │ │ sfx_toggle_on.wav │ │ ui_atlas.meta │ │ ui_atlas.zim │ │ unknown.png │ │ zip.png │ │ │ ├───debugger │ │ │ .nojekyll │ │ │ asset-manifest.json │ │ │ favicon.ico │ │ │ index.html │ │ │ manifest.json │ │ │ │ │ └───static │ │ ├───css │ │ │ main.3eab8a01.css │ │ │ main.3eab8a01.css.map │ │ │ │ │ ├───js │ │ │ main.fe87e942.js │ │ │ main.fe87e942.js.LICENSE.txt │ │ │ main.fe87e942.js.map │ │ │ │ │ └───media │ │ logo.94f885ce93dfb6d29a122402a15cccca.svg │ │ │ ├───flash0 │ │ └───font │ │ jpn0.pgf │ │ kr0.pgf │ │ ltn0.pgf │ │ ltn1.pgf │ │ ltn10.pgf │ │ ltn11.pgf │ │ ltn12.pgf │ │ ltn13.pgf │ │ ltn14.pgf │ │ ltn15.pgf │ │ ltn2.pgf │ │ ltn3.pgf │ │ ltn4.pgf │ │ ltn5.pgf │ │ ltn6.pgf │ │ ltn7.pgf │ │ ltn8.pgf │ │ ltn9.pgf │ │ │ ├───lang │ │ ar_AE.ini │ │ az_AZ.ini │ │ bg_BG.ini │ │ ca_ES.ini │ │ cz_CZ.ini │ │ da_DK.ini │ │ de_DE.ini │ │ dr_ID.ini │ │ en_US.ini │ │ es_ES.ini │ │ es_LA.ini │ │ fa_IR.ini │ │ fi_FI.ini │ │ fr_FR.ini │ │ gl_ES.ini │ │ gr_EL.ini │ │ he_IL.ini │ │ he_IL_invert.ini │ │ hr_HR.ini │ │ hu_HU.ini │ │ id_ID.ini │ │ it_IT.ini │ │ ja_JP.ini │ │ jv_ID.ini │ │ ko_KR.ini │ │ lo_LA.ini │ │ lt-LT.ini │ │ ms_MY.ini │ │ nl_NL.ini │ │ no_NO.ini │ │ pl_PL.ini │ │ pt_BR.ini │ │ pt_PT.ini │ │ README.md │ │ ro_RO.ini │ │ ru_RU.ini │ │ sv_SE.ini │ │ tg_PH.ini │ │ th_TH.ini │ │ tr_TR.ini │ │ uk_UA.ini │ │ vi_VN.ini │ │ zh_CN.ini │ │ zh_TW.ini │ │ │ ├───mime │ │ ppsspp.xml │ │ │ ├───shaders │ │ 4xhqglsl.fsh │ │ 4xhqglsl.vsh │ │ 5xBR-lv2.fsh │ │ 5xBR.fsh │ │ 5xBR.vsh │ │ aacolor.fsh │ │ aacolor.vsh │ │ bloom.fsh │ │ bloomnoblur.fsh │ │ cartoon.fsh │ │ cartoon.vsh │ │ checkers.fsh │ │ colorcorrection.fsh │ │ crt.fsh │ │ defaultshaders.ini │ │ fakereflections.fsh │ │ fxaa.fsh │ │ fxaa.vsh │ │ GaussianDownscale.fsh │ │ natural.fsh │ │ natural.vsh │ │ naturalA.fsh │ │ naturalA.vsh │ │ persistence.fsh │ │ psp_color.fsh │ │ scanlines.fsh │ │ sharpen.fsh │ │ stereo_red_blue.fsh │ │ stereo_sbs.fsh │ │ tex_2xbrz.csh │ │ tex_4xbrz.csh │ │ tex_mmpx.csh │ │ upscale_bicubic.fsh │ │ upscale_bicubic.vsh │ │ upscale_spline36.fsh │ │ upscale_spline36.vsh │ │ videoAA.fsh │ │ vignette.fsh │ │ │ ├───themes │ │ defaultthemes.ini │ │ │ └───vfpu │ vfpu_asin_lut65536.dat │ vfpu_asin_lut_deltas.dat │ vfpu_asin_lut_indices.dat │ vfpu_exp2_lut.dat │ vfpu_exp2_lut65536.dat │ vfpu_log2_lut.dat │ vfpu_log2_lut65536.dat │ vfpu_log2_lut65536_quadratic.dat │ vfpu_rcp_lut.dat │ vfpu_rsqrt_lut.dat │ vfpu_sin_lut8192.dat │ vfpu_sin_lut_delta.dat │ vfpu_sin_lut_exceptions.dat │ vfpu_sin_lut_interval_delta.dat │ vfpu_sqrt_lut.dat │ └───memstick └───PSP ├───Cheats ├───GAME ├───PLUGINS ├───PPSSPP_STATE ├───SAVEDATA ├───SYSTEM │ │ controls.ini │ │ ppsspp.ini │ │ │ └───CACHE │ icon.cache │ └───TEXTURES ```

and finally this large one:

F:\Dolphin-x64

``` F:\DOLPHIN-X64 │ build_info.txt │ Dolphin.exe │ DolphinTool.exe │ DSPTool.exe │ license.txt │ qt.conf │ Qt6Core.dll │ Qt6Gui.dll │ Qt6Svg.dll │ Qt6Widgets.dll │ Updater.exe │ ├───Languages │ ar.mo │ ca.mo │ cs.mo │ da.mo │ de.mo │ el.mo │ en.mo │ es.mo │ fa.mo │ fi.mo │ fr.mo │ hr.mo │ hu.mo │ it.mo │ ja.mo │ ko.mo │ ms.mo │ nb.mo │ nl.mo │ pl.mo │ pt.mo │ pt_BR.mo │ ro.mo │ ru.mo │ sr.mo │ sv.mo │ tr.mo │ zh_CN.mo │ zh_TW.mo │ ├───QtPlugins │ ├───iconengines │ │ qsvgicon.dll │ │ │ ├───imageformats │ │ qsvg.dll │ │ │ ├───platforms │ │ qdirect2d.dll │ │ qwindows.dll │ │ │ └───styles │ qwindowsvistastyle.dll │ └───Sys │ codehandler.bin │ totaldb.dsy │ wiitdb-de.txt │ wiitdb-en.txt │ wiitdb-es.txt │ wiitdb-fr.txt │ wiitdb-it.txt │ wiitdb-ja.txt │ wiitdb-ko.txt │ wiitdb-nl.txt │ wiitdb-pt.txt │ wiitdb-ru.txt │ wiitdb-zh_CN.txt │ wiitdb-zh_TW.txt │ ├───GameSettings │ 0000000100000002.ini │ C.ini │ D43.ini │ D43E01.ini │ D43J01.ini │ D56E01.ini │ D85.ini │ D86.ini │ D93U01.ini │ D95.ini │ DAX.ini │ DD2.ini │ DJU.ini │ DLS.ini │ DPOJ8P.ini │ DPSJ8P.ini │ DQA.ini │ DSR.ini │ E.ini │ E52.ini │ E53.ini │ E54.ini │ E55.ini │ E56.ini │ E57.ini │ E5Z.ini │ E62.ini │ E63.ini │ E6N.ini │ E6Q.ini │ E6V.ini │ E6W.ini │ E6X.ini │ E73.ini │ E79.ini │ E7J.ini │ E7V.ini │ E7Z.ini │ EA2.ini │ EA3.ini │ EA4.ini │ EA5.ini │ EA6.ini │ EA7.ini │ EA8.ini │ EA9.ini │ EAA.ini │ EAB.ini │ EAC.ini │ EAD.ini │ EAE.ini │ EAF.ini │ EAG.ini │ EAH.ini │ EAI.ini │ EAJ.ini │ EAK.ini │ EAL.ini │ EAM.ini │ EAN.ini │ EAO.ini │ EAP.ini │ EAQ.ini │ EAR.ini │ EAS.ini │ EAT.ini │ EAU.ini │ EAV.ini │ EAW.ini │ EAY.ini │ EAZ.ini │ EB2.ini │ EB3.ini │ EB4.ini │ EB5.ini │ EB6.ini │ EB7.ini │ EB8.ini │ EB9.ini │ EBA.ini │ EBB.ini │ EBC.ini │ EBD.ini │ EBE.ini │ EBF.ini │ EBG.ini │ EBK.ini │ EBL.ini │ EBM.ini │ EBN.ini │ EBO.ini │ EBP.ini │ EBQ.ini │ EBR.ini │ EBS.ini │ EBT.ini │ EBU.ini │ EBV.ini │ EBW.ini │ EBX.ini │ EBZ.ini │ ECA.ini │ ECC.ini │ ECD.ini │ ECE.ini │ ECF.ini │ ECG.ini │ ECH.ini │ ECI.ini │ ECJ.ini │ ECK.ini │ ECL.ini │ ECM.ini │ ECN.ini │ F.ini │ FAAE01.ini │ FABE01.ini │ FABP01.ini │ FACE01.ini │ FACP01.ini │ FAFE01.ini │ FAGE01.ini │ FAHE01.ini │ FAIE01.ini │ FAJE01.ini │ FAJP01.ini │ FAKE01.ini │ FAKP01.ini │ FALE01.ini │ FAME01.ini │ FANE01.ini │ FAOE01.ini │ FARE01.ini │ FASE01.ini │ G2B.ini │ G2BE5G.ini │ G2BP7D.ini │ G2C.ini │ G2FE78.ini │ G2M.ini │ G2ME01.ini │ G2MP01.ini │ G2O.ini │ G2RE52.ini │ G2V.ini │ G2X.ini │ G3A.ini │ G3F.ini │ G3L.ini │ G3Q.ini │ G3R.ini │ G3X.ini │ G3YP52.ini │ G4C.ini │ G4GEE9.ini │ G4M.ini │ G4NJDA.ini │ G4P.ini │ G4QE01.ini │ G4S.ini │ G4SP01.ini │ G4Z.ini │ G5D.ini │ G5N.ini │ G5T.ini │ G6Q.ini │ G6S.ini │ G6T.ini │ G6W.ini │ G8M.ini │ G8ME01.ini │ G8W.ini │ G8WP01.ini │ G95.ini │ G96.ini │ G99.ini │ G9R.ini │ G9S.ini │ G9T.ini │ GAA.ini │ GAF.ini │ GAFE01.ini │ GAK.ini │ GAL.ini │ GALE01r0.ini │ GALE01r1.ini │ GALE01r2.ini │ GALP01.ini │ GAP.ini │ GAS.ini │ GAU.ini │ GAUE08.ini │ GAV.ini │ GAY.ini │ GB3.ini │ GB4E51.ini │ GBH.ini │ GBHEC8.ini │ GBL.ini │ GBM.ini │ GBOP51.ini │ GBS.ini │ GBV.ini │ GBW.ini │ GBZ.ini │ GBZP08.ini │ GC2.ini │ GC3.ini │ GC6.ini │ GC6E01.ini │ GC6J01.ini │ GC6P01.ini │ GC8JA4.ini │ GC9.ini │ GCC.ini │ GCCE01.ini │ GCCJGC.ini │ GCCP01.ini │ GCD.ini │ GCDP08.ini │ GCE.ini │ GCH.ini │ GCI.ini │ GCN.ini │ GCO.ini │ GCP.ini │ GCVEEB.ini │ GCZ.ini │ GDD.ini │ GDDE41.ini │ GDE.ini │ GDEE71.ini │ GDG.ini │ GDJEB2.ini │ GDK.ini │ GDM.ini │ GDQ.ini │ GDREAF.ini │ GDRP69.ini │ GDS.ini │ GDT.ini │ GDTE69.ini │ GDV.ini │ GDX.ini │ GE3.ini │ GE4.ini │ GE5EA4.ini │ GE9.ini │ GEA.ini │ GED.ini │ GEME7F.ini │ GEMJ28.ini │ GEN.ini │ GEO.ini │ GEZ.ini │ GF4.ini │ GF7.ini │ GF7E01.ini │ GF7P01.ini │ GF8E69.ini │ GFB.ini │ GFD.ini │ GFEE01.ini │ GFEJ01.ini │ GFF.ini │ GFG.ini │ GFH.ini │ GFTE01.ini │ GFY.ini │ GFYE69.ini │ GFZ.ini │ GFZE01.ini │ GFZJ01.ini │ GFZJ8P.ini │ GFZP01.ini │ GGC.ini │ GGE.ini │ GGN.ini │ GGR.ini │ GGS.ini │ GGSEA4.ini │ GGSPA4.ini │ GGTE01.ini │ GGV.ini │ GGVD78.ini │ GGVE78.ini │ GGVP78.ini │ GGVX78.ini │ GGY.ini │ GGZ.ini │ GH2.ini │ GH7.ini │ GH9.ini │ GHAE08.ini │ GHAJ08.ini │ GHAP08.ini │ GHK.ini │ GHME4F.ini │ GHN.ini │ GHQ.ini │ GHR.ini │ GHRE78.ini │ GHS.ini │ GHV.ini │ GHY.ini │ GIA.ini │ GIC.ini │ GICD78.ini │ GICE78.ini │ GICF78.ini │ GICH78.ini │ GICJG9.ini │ GICP78.ini │ GIGJ8P.ini │ GIH.ini │ GIL.ini │ GINE69.ini │ GIQ.ini │ GIQE78.ini │ GIQJ8P.ini │ GIQX78.ini │ GIQY78.ini │ GIS.ini │ GIZ.ini │ GJB.ini │ GJCE8P.ini │ GJD.ini │ GJF.ini │ GJK.ini │ GJN.ini │ GJUE78.ini │ GJWE78.ini │ GK2.ini │ GK4.ini │ GK4E01.ini │ GK5.ini │ GK7.ini │ GKB.ini │ GKH.ini │ GKL.ini │ GKM.ini │ GKNEB2.ini │ GKO.ini │ GKS.ini │ GKU.ini │ GKY.ini │ GKZ.ini │ GL5.ini │ GL7.ini │ GL8.ini │ GLC.ini │ GLE.ini │ GLEE08.ini │ GLEJ08.ini │ GLEP08.ini │ GLG.ini │ GLM.ini │ GLME01.ini │ GLMP01.ini │ GLNE69.ini │ GLR.ini │ GLS.ini │ GLSD64.ini │ GLSE64.ini │ GLSF64.ini │ GLSP64.ini │ GLZ.ini │ GM2.ini │ GM3.ini │ GM4.ini │ GM4E01.ini │ GM4P01.ini │ GM5.ini │ GM6.ini │ GM8.ini │ GM8E01.ini │ GMB.ini │ GMD.ini │ GMH.ini │ GMI.ini │ GMN.ini │ GMPE01.ini │ GMS.ini │ GMSE01.ini │ GMSP01.ini │ GMX.ini │ GMXE70.ini │ GN4.ini │ GN7.ini │ GNC.ini │ GNE.ini │ GNHE5d.ini │ GNI.ini │ GNJ.ini │ GNM.ini │ GNN.ini │ GNO.ini │ GNW.ini │ GNWE69.ini │ GO2.ini │ GO2E4F.ini │ GO7E69.ini │ GO7F69.ini │ GO7P69.ini │ GOM.ini │ GOME01.ini │ GOQ.ini │ GOS.ini │ GOW.ini │ GOY.ini │ GOYE69.ini │ GP2.ini │ GP3.ini │ GP5.ini │ GP5E01.ini │ GP6.ini │ GP6E01.ini │ GP7E01.ini │ GPA.ini │ GPE.ini │ GPH.ini │ GPIE01.ini │ GPIP01.ini │ GPK.ini │ GPNP08.ini │ GPO.ini │ GPOE8P.ini │ GPOP8P.ini │ GPS.ini │ GPSP8P.ini │ GPT.ini │ GPVE01.ini │ GPXJ01.ini │ GQ4.ini │ GQC.ini │ GQP.ini │ GQPE78.ini │ GQPP78.ini │ GQS.ini │ GQSEAF.ini │ GQX.ini │ GR6.ini │ GRB.ini │ GREE08.ini │ GREJ08.ini │ GRH.ini │ GRJ.ini │ GRK.ini │ GRNE52.ini │ GRQ.ini │ GRSPAF.ini │ GRU.ini │ GRUE78.ini │ GRY.ini │ GRYE41.ini │ GS2.ini │ GS2E78.ini │ GSAP01.ini │ GSB.ini │ GSM.ini │ GSN.ini │ GSNE8P.ini │ GSNP8P.ini │ GSO.ini │ GSQ.ini │ GSR.ini │ GSS.ini │ GSSE8P.ini │ GST.ini │ GSV.ini │ GSW.ini │ GSX.ini │ GSZ.ini │ GT3.ini │ GT6.ini │ GT6E70.ini │ GT7.ini │ GTEE01.ini │ GTEP01.ini │ GTK.ini │ GTKE51.ini │ GTO.ini │ GTR.ini │ GTSE4F.ini │ GTW.ini │ GTY.ini │ GTZ.ini │ GU2.ini │ GU2D78.ini │ GU2F78.ini │ GU3.ini │ GU3D78.ini │ GU3X78.ini │ GU4.ini │ GU4Y78.ini │ GUB.ini │ GUM.ini │ GUN.ini │ GUNE5D.ini │ GUP.ini │ GUT.ini │ GUZ.ini │ GV4E69.ini │ GVC.ini │ GVD.ini │ GVJ.ini │ GVL.ini │ GVO.ini │ GVPE69.ini │ GVS.ini │ GVS46E.ini │ GVS46J.ini │ GW2.ini │ GW7.ini │ GW9.ini │ GWJ.ini │ GWK.ini │ GWL.ini │ GWLE6L.ini │ GWLX6L.ini │ GWP.ini │ GWQE52.ini │ GWRE01.ini │ GWRP01.ini │ GWT.ini │ GWWP01.ini │ GWY.ini │ GX3.ini │ GXB.ini │ GXG.ini │ GXM.ini │ GXN.ini │ GXS.ini │ GXSP8P.ini │ GXU.ini │ GXX.ini │ GXXE01.ini │ GXXJ01.ini │ GXXP01.ini │ GYA.ini │ GYQ.ini │ GYT.ini │ GZ2.ini │ GZ2E01.ini │ GZ2J01.ini │ GZ2P01.ini │ GZ3E70.ini │ GZD.ini │ GZE.ini │ GZL.ini │ GZLE01.ini │ GZLJ01.ini │ GZLP01.ini │ GZP.ini │ GZW.ini │ HA8.ini │ HA9.ini │ HAB.ini │ HAC.ini │ HAF.ini │ HAG.ini │ HAJ.ini │ HAL.ini │ HAT.ini │ HATE01.ini │ HATJ01.ini │ HATP01.ini │ HBA.ini │ HBB.ini │ HBC.ini │ HBD.ini │ HBF.ini │ HBG.ini │ HBI.ini │ HBK.ini │ HC2.ini │ HC4.ini │ HCL.ini │ HCS.ini │ J.ini │ JA7.ini │ JAE.ini │ JAL.ini │ JAP.ini │ JB6.ini │ JBA.ini │ JBC.ini │ JBH.ini │ JBK.ini │ JBO.ini │ JBQ.ini │ JBS.ini │ JBU.ini │ JC6.ini │ JC8.ini │ JC9.ini │ JCD.ini │ JCE.ini │ JCL.ini │ JCT.ini │ JCX.ini │ JCY.ini │ JDA.ini │ JDV.ini │ JEC.ini │ L.ini │ LAD.ini │ LAF.ini │ LAK.ini │ LAL.ini │ LAO.ini │ LAP.ini │ M.ini │ MAK.ini │ MB3.ini │ MB9.ini │ MBA.ini │ MCD.ini │ MCS.ini │ MCT.ini │ MCV.ini │ MCW.ini │ MCY.ini │ MCZ.ini │ N.ini │ NAB.ini │ NAC.ini │ NAD.ini │ NAE.ini │ NAF.ini │ NAH.ini │ NAK.ini │ NAL.ini │ NAO.ini │ NAR.ini │ NAT.ini │ P.ini │ P2M.ini │ P4B.ini │ PC6.ini │ PCK.ini │ PCS.ini │ PGS.ini │ PM4.ini │ PNJ.ini │ PRJ.ini │ PZL.ini │ PZLE01.ini │ Q.ini │ R22.ini │ R25.ini │ R26.ini │ R29.ini │ R2E.ini │ R2F.ini │ R2G.ini │ R2H.ini │ R2L.ini │ R2M.ini │ R2P.ini │ R2Q.ini │ R2R.ini │ R2V.ini │ R35.ini │ R38.ini │ R3A.ini │ R3B.ini │ R3C.ini │ R3D.ini │ R3E.ini │ R3G.ini │ R3H.ini │ R3J.ini │ R3M.ini │ R3N.ini │ R3O.ini │ R3R.ini │ R3S.ini │ R44.ini │ R46.ini │ R4C.ini │ R4D.ini │ R4E.ini │ R4F.ini │ R4L.ini │ R4M.ini │ R4V.ini │ R4Z.ini │ R55.ini │ R58.ini │ R59.ini │ R5D.ini │ R5F.ini │ R5I.ini │ R5O.ini │ R5P.ini │ R5Q.ini │ R5S.ini │ R5T.ini │ R5W.ini │ R64.ini │ R66.ini │ R67.ini │ R6B.ini │ R6C.INI │ R6E.ini │ R6G.ini │ R6Q.ini │ R6T.ini │ R6V.ini │ R6X.ini │ R6Y.ini │ R74.ini │ R75.ini │ R77.ini │ R79.ini │ R7B.ini │ R7E.ini │ R7G.ini │ R7H.ini │ R7K.ini │ R7N.ini │ R7P.ini │ R7PE01.ini │ R7PP01.ini │ R7S.ini │ R7X.ini │ R82.ini │ R84.ini │ R86.ini │ R88.ini │ R89.ini │ R8A.ini │ R8D.ini │ R8G.ini │ R8I.ini │ R8J.ini │ R8K.ini │ R8L.ini │ R8N.ini │ R8P.ini │ R8R.ini │ R8T.ini │ R92.ini │ R9B.ini │ R9D.ini │ R9E.ini │ R9G.ini │ R9I.ini │ R9Q.ini │ R9R.ini │ R9S.ini │ R9W.ini │ RAA.ini │ RB2.ini │ RB5.ini │ RB7.ini │ RB8.ini │ RB9.ini │ RBB.ini │ RBC.ini │ RBF.ini │ RBH.ini │ RBI.ini │ RBK.ini │ RBL.ini │ RBM.ini │ RBO.ini │ RBP.ini │ RBQ.ini │ RBR.ini │ RBS.ini │ RBT.ini │ RBW.ini │ RBY.ini │ RBZ.ini │ RC4.ini │ RC5.ini │ RCB.ini │ RCC.ini │ RCE.ini │ RCF.ini │ RCH.ini │ RCJ.ini │ RCK.ini │ RCL.ini │ RCO.ini │ RCP.ini │ RCS.ini │ RCT.ini │ RCU.ini │ RCV.ini │ RCY.ini │ RD2.ini │ RD8.ini │ RD9.ini │ RDA.ini │ RDB.ini │ RDF.ini │ RDL.ini │ RDM.ini │ RDP.ini │ RDS.ini │ RDT.ini │ RDU.ini │ RDZ.ini │ RE8.ini │ REB.ini │ RED.ini │ REF.ini │ REL.ini │ RELJAB.ini │ REM.ini │ REP.ini │ REQ.ini │ RES.ini │ RET.ini │ REU.ini │ REX.ini │ REZ.ini │ RF2.ini │ RF4.ini │ RFA.ini │ RFB.ini │ RFC.ini │ RFF.ini │ RFK.ini │ RFN.ini │ RFP.ini │ RFQ.ini │ RFR.ini │ RFS.ini │ RFT.ini │ RFU.ini │ RFW.ini │ RG2.ini │ RG4.ini │ RG6.ini │ RG8.ini │ RGB.ini │ RGD.ini │ RGI.ini │ RGJ.ini │ RGK.ini │ RGM.ini │ RGN.ini │ RGQ.ini │ RGQE70.ini │ RGS.ini │ RGW.ini │ RGX.ini │ RGY.ini │ RH2.ini │ RH4.ini │ RH5.ini │ RH6.ini │ RH7.ini │ RH8.ini │ RH9.ini │ RHA.ini │ RHC.ini │ RHD.ini │ RHE.ini │ RHF.ini │ RHG.ini │ RHJ.ini │ RHL.ini │ RHM.ini │ RHN.ini │ RHO.ini │ RHP.ini │ RHR.ini │ RHT.ini │ RHV.ini │ RHZ.ini │ RI2.ini │ RI3.ini │ RI7.ini │ RI8.ini │ RIE.ini │ RIF.ini │ RIG.ini │ RIL.ini │ RIM.ini │ RIP.ini │ RIR.ini │ RIU.ini │ RIZ.ini │ RJ2.ini │ RJ3.ini │ RJ4.ini │ RJ7.ini │ RJ8.ini │ RJB.ini │ RJC.ini │ RJE.ini │ RJF.ini │ RJN.ini │ RJQ.ini │ RJS.ini │ RJZ.ini │ RK2.ini │ RK9.ini │ RKA.ini │ RKD.ini │ RKF.ini │ RKG.ini │ RKI.ini │ RKJ.ini │ RKL.ini │ RKQ.ini │ RKS.ini │ RKT.ini │ RKW.ini │ RL5.ini │ RLD.ini │ RLEEFS.ini │ RLI.ini │ RLJ.ini │ RLK.ini │ RLL.ini │ RLS.ini │ RLT.ini │ RLV.ini │ RLX.ini │ RM3.ini │ RM7.ini │ RM8.ini │ RM8E01.ini │ RM9.ini │ RMC.ini │ RME.ini │ RMG.ini │ RMH.ini │ RMHE08.ini │ RMHJ08.ini │ RMHP08.ini │ RMI.ini │ RMJ.ini │ RMK.ini │ RML.ini │ RMO.ini │ RMP.ini │ RMQ.ini │ RMR.ini │ RMT.ini │ RMV.ini │ RMW.ini │ RMY.ini │ RMZ.ini │ RN2.ini │ RN5.ini │ RN8.ini │ RNB.ini │ RNC.ini │ RND.ini │ RNG.ini │ RNM.ini │ RNO.ini │ RNU.ini │ RNV.ini │ RNW.ini │ RNX.ini │ RO2P7N.ini │ RO3.ini │ RO7.ini │ RO8.ini │ RO9.ini │ ROA.ini │ ROB.ini │ ROC.ini │ ROD.ini │ ROE.ini │ ROF.ini │ ROG.ini │ ROL.ini │ ROM.ini │ RON.ini │ ROO.ini │ ROP.ini │ ROT.ini │ ROU.ini │ ROW.ini │ ROX.ini │ RPB.ini │ RPBE01.ini │ RPBJ01.ini │ RPBJ01r0.ini │ RPBJ01r1.ini │ RPBJ01r2.ini │ RPBP01.ini │ RPC.ini │ RPD.ini │ RPF.ini │ RPG.ini │ RPH.ini │ RPJ.ini │ RPK.ini │ RPL.ini │ RPM.ini │ RPO.ini │ RPP.ini │ RPQ.ini │ RPS.ini │ RPT.ini │ RPU.ini │ RPY.ini │ RQ2.ini │ RQ4.ini │ RQ5.ini │ RQ6.ini │ RQ8.ini │ RQB.ini │ RQE.ini │ RQF.ini │ RQL.ini │ RQM.ini │ RQP.ini │ RQQ.ini │ RQR.ini │ RQS.ini │ RQT.ini │ RQU.ini │ RQW.ini │ RR2.ini │ RR3.ini │ RR5.ini │ RRA.ini │ RRB.ini │ RRF.ini │ RRK.ini │ RRL.ini │ RRO.ini │ RRP.ini │ RRS.ini │ RRT.ini │ RRV.ini │ RRW.ini │ RRX.ini │ RRZ.ini │ RS2.ini │ RS4.ini │ RS5.ini │ RSA.ini │ RSB.ini │ RSBE01.ini │ RSBP01.ini │ RSD.ini │ RSH.ini │ RSI.ini │ RSJ.ini │ RSL.ini │ RSM.ini │ RSN.ini │ RSO.ini │ RSP.ini │ RSR.ini │ RSS.ini │ RST.ini │ RSX.ini │ RSY.ini │ RT3.ini │ RT4.ini │ RT7.ini │ RT8.ini │ RTB.ini │ RTG.ini │ RTH.ini │ RTJ.ini │ RTK.ini │ RTL.ini │ RTM.ini │ RTP.ini │ RTQ.ini │ RTR.ini │ RTT.ini │ RTU.ini │ RTW.ini │ RTZ.ini │ RUD.ini │ RUF.ini │ RUN.ini │ RUO.ini │ RUP.ini │ RUR.ini │ RUU.ini │ RUW.ini │ RUZ.ini │ RV2.ini │ RVA.ini │ RVB.ini │ RVC.ini │ RVE.ini │ RVN.ini │ RVO.ini │ RVQ.ini │ RVR.ini │ RW3.ini │ RW4.ini │ RW7.ini │ RW8.ini │ RWA.ini │ RWB.ini │ RWC.ini │ RWF.ini │ RWG.ini │ RWH.ini │ RWK.ini │ RWN.ini │ RWO.ini │ RWQ.ini │ RWS.ini │ RWY.ini │ RWZ.ini │ RX3.ini │ RX4.ini │ RX4E4Z.ini │ RX4PMT.ini │ RX6.ini │ RXB.ini │ RXC.ini │ RXF.ini │ RXH.ini │ RXI.ini │ RXR.ini │ RXV.ini │ RXX.ini │ RXZ.ini │ RY2.ini │ RY3.ini │ RY4.ini │ RY8.ini │ RYB.ini │ RYG.ini │ RYH.ini │ RYI.ini │ RYL.ini │ RYN.ini │ RYV.ini │ RYW.ini │ RYZ.ini │ RZ2.ini │ RZ3.ini │ RZ4.ini │ RZ5.ini │ RZ6.ini │ RZ7.ini │ RZ8.ini │ RZD.ini │ RZDE01r0.ini │ RZDE01r2.ini │ RZDJ01.ini │ RZDK01.ini │ RZDP01.ini │ RZF.ini │ RZJ.ini │ RZJP69.ini │ RZL.ini │ RZO.ini │ RZR.ini │ RZT.ini │ RZY.ini │ S25.ini │ S2C.ini │ S2D.ini │ S2E.ini │ S2L.ini │ S2O.ini │ S2W.ini │ S3B.ini │ S3H.ini │ S59.ini │ S5D.ini │ S5S.ini │ S72.ini │ S75.ini │ SAG.ini │ SAK.ini │ SAL.ini │ SAN.ini │ SAOE78.ini │ SAOEVZ.ini │ SAT.ini │ SB3.ini │ SB4.ini │ SB8.ini │ SBD.ini │ SBE.ini │ SBF.ini │ SBK.ini │ SBQ.ini │ SBR.ini │ SBV.ini │ SBX.ini │ SBY.ini │ SBZ.ini │ SC2E8P.ini │ SC7.ini │ SCA.ini │ SCE.ini │ SCF.ini │ SCH.ini │ SCI.ini │ SCK.ini │ SCT.ini │ SCY.ini │ SD2.ini │ SD2J01.ini │ SD8.ini │ SDB.ini │ SDE.ini │ SDL.ini │ SDM.ini │ SDN.ini │ SDO.ini │ SDV.ini │ SDW.ini │ SDZ.ini │ SE2.ini │ SEA.ini │ SEC.ini │ SEG.ini │ SEM.ini │ SEP.ini │ SER.ini │ SEU.ini │ SEV.ini │ SF2.ini │ SF7.ini │ SF8.ini │ SFI.ini │ SFP.ini │ SFR.ini │ SFU.ini │ SG2.ini │ SG3.ini │ SG7.ini │ SG8.ini │ SGD.ini │ SGL.ini │ SGLEA4.ini │ SGLPA4.ini │ SGT.ini │ SGV.ini │ SGX.ini │ SH2.ini │ SH6.ini │ SH9.ini │ SHL.ini │ SHO.ini │ SHP.ini │ SHW.ini │ SHX.ini │ SIL.ini │ SIS.ini │ SJ6.ini │ SJ7.ini │ SJ9.ini │ SJB.ini │ SJC.ini │ SJD.ini │ SJDJ01.ini │ SJE.ini │ SJHE41.ini │ SJK.ini │ SJL.ini │ SJQ.ini │ SJTP41.ini │ SJX.ini │ SJZ.ini │ SK3.ini │ SKA.ini │ SKB.ini │ SKC.ini │ SKG.ini │ SKJ.ini │ SKO.ini │ SKP.ini │ SKT.ini │ SKU.ini │ SKV.ini │ SKW.ini │ SKX.ini │ SL2.ini │ SLE.ini │ SLP.ini │ SLS.ini │ SLW.ini │ SM2.ini │ SM6.ini │ SMB.ini │ SMF.ini │ SMI.ini │ SMM.ini │ SMN.ini │ SMNE01.ini │ SMNP01.ini │ SMO.ini │ SMS.ini │ SMU.ini │ SMZ.ini │ SNC.ini │ SND.ini │ SNG.ini │ SNJ.ini │ SNJE69.ini │ SNM.ini │ SNQ.ini │ SNS.ini │ SNT.ini │ SNY.ini │ SOC.ini │ SOD.ini │ SOM.ini │ SOR.ini │ SOS.ini │ SOU.ini │ SP3.ini │ SP7.ini │ SP8.ini │ SP9.ini │ SPA.ini │ SPC.ini │ SPD.ini │ SPH.ini │ SPM.ini │ SPR.ini │ SPT.ini │ SPU.ini │ SPV.ini │ SPZ.ini │ SQD.ini │ SQI.ini │ SR5.ini │ SR6.ini │ SR7.ini │ SR8.ini │ SR9.ini │ SRA.ini │ SRE.ini │ SRL.ini │ SRT.ini │ SRV.ini │ SRW.ini │ SRX.ini │ SS8.ini │ SS9.ini │ SSC.ini │ SSG.ini │ SSH.ini │ SSQ.ini │ SSR.ini │ SST.ini │ SSZ.ini │ ST4.ini │ ST6.ini │ STM.ini │ STN.ini │ STR.ini │ STS.ini │ STV.ini │ SU3.ini │ SU4.ini │ SU7.ini │ SUK.ini │ SUKE01.ini │ SUKJ01.ini │ SUKP01.ini │ SUM.ini │ SUO.ini │ SUS.ini │ SUU.ini │ SUW.ini │ SVB.ini │ SVF.ini │ SVM.ini │ SVV.ini │ SVW.ini │ SVX.ini │ SVZ.ini │ SX3.ini │ SX4.ini │ SX7.ini │ SX8.ini │ SXC.ini │ SZB.ini │ W22.ini │ W2G.ini │ W2L.ini │ W34.ini │ W3B.ini │ W3G.ini │ W3M.ini │ W4A.ini │ W4O.ini │ W5I.ini │ W64.ini │ W69.ini │ W8I.ini │ W8L.ini │ W8X.ini │ W9L.ini │ WA2.ini │ WAF.ini │ WAN.ini │ WAZ.ini │ WB2.ini │ WB3.ini │ WB4.ini │ WB6.ini │ WB7.ini │ WB8.ini │ WBA.ini │ WBI.ini │ WBK.ini │ WBL.ini │ WBR.ini │ WBV.ini │ WBX.ini │ WBY.ini │ WBZ.ini │ WC2.ini │ WC6.ini │ WCH.ini │ WCI.ini │ WCJ.ini │ WCO.ini │ WCP.ini │ WCU.ini │ WCV.ini │ WCZ.ini │ WD9.ini │ WDA.ini │ WDE.ini │ WDF.ini │ WDN.ini │ WDO.ini │ WDX.ini │ WEM.ini │ WF3.ini │ WF4.ini │ WF5.ini │ WFA.ini │ WFH.ini │ WFI.ini │ WFK.ini │ WFL.ini │ WFM.ini │ WFN.ini │ WFU.ini │ WFY.ini │ WGG.ini │ WGL.ini │ WGS.ini │ WGU.ini │ WH3.ini │ WHE.ini │ WHF.ini │ WHO.ini │ WHP.ini │ WHU.ini │ WHW.ini │ WIB.ini │ WIC.ini │ WIN.ini │ WIT.ini │ WJA.ini │ WJE.ini │ WJS.ini │ WKD.ini │ WKE.ini │ WKI.ini │ WKK.ini │ WKN.ini │ WKT.ini │ WKU.ini │ WKW.ini │ WL9.ini │ WLC.ini │ WLD.ini │ WLE.ini │ WLJ.ini │ WLK.ini │ WLM.ini │ WLN.ini │ WLO.ini │ WLP.ini │ WLT.ini │ WLX.ini │ WLZ.ini │ WM4.ini │ WM5.ini │ WM9.ini │ WMA.ini │ WMB.ini │ WMD.ini │ WMG.ini │ WML.ini │ WMO.ini │ WMS.ini │ WO6.ini │ WOA.ini │ WOD.ini │ WOF.ini │ WOG.ini │ WOL.ini │ WOP.ini │ WOX.ini │ WOY.ini │ WP4.ini │ WP6.ini │ WP9.ini │ WPA.ini │ WPB.ini │ WPD.ini │ WPF.ini │ WPH.ini │ WPJ.ini │ WPN.ini │ WPP.ini │ WPQ.ini │ WPS.ini │ WPT.ini │ WPU.ini │ WPX.ini │ WPZ.ini │ WQ4.ini │ WR5.ini │ WR9.ini │ WRA.ini │ WRD.ini │ WRF.ini │ WRI.ini │ WRS.ini │ WRX.ini │ WS2.ini │ WS3.ini │ WS4.ini │ WS5.ini │ WS6.ini │ WS9.ini │ WSH.ini │ WSI.ini │ WSL.ini │ WSR.ini │ WSX.ini │ WT8.ini │ WTB.ini │ WTD.ini │ WTE.ini │ WTI.ini │ WTK.ini │ WTN.ini │ WTU.ini │ WTX.ini │ WUK.ini │ WW2.ini │ WW3.ini │ WWA.ini │ WWI.ini │ WWX.ini │ WXB.ini │ WXP.ini │ WXR.ini │ WYM.ini │ WZB.ini │ WZG.ini │ WZI.ini │ WZM.ini │ XAA.ini │ XAB.ini │ XAD.ini │ XAE.ini │ XAF.ini │ XAG.ini │ XAH.ini │ XAI.ini │ XAK.ini │ XAL.ini │ XAM.ini │ XAN.ini │ XAO.ini │ XAP.ini │ XAQ.ini │ XH2.ini │ XH7.ini │ XH9.ini │ XHD.ini │ XHL.ini │ XI9.ini │ XIT.ini │ XIU.ini │ XIV.ini │ ├───GC │ dsp_coef.bin │ dsp_rom.bin │ font-licenses.txt │ font_japanese.bin │ font_western.bin │ ├───Load │ └───GraphicMods │ ├───All Games Bloom Removal │ │ all.txt │ │ metadata.json │ │ │ ├───All Games DOF Removal │ │ all.txt │ │ metadata.json │ │ │ ├───All Games HUD Removal │ │ all.txt │ │ metadata.json │ │ │ ├───All Games Native Resolution Bloom │ │ all.txt │ │ metadata.json │ │ │ ├───All Games Native Resolution DOF │ │ all.txt │ │ metadata.json │ │ │ ├───Arc Rise Fantasia │ │ metadata.json │ │ RPJ.txt │ │ │ ├───Battalion Wars 2 │ │ metadata.json │ │ RBW.txt │ │ │ ├───Donkey Kong Country Returns │ │ metadata.json │ │ SF8.txt │ │ │ ├───Dragon Ball Z Budokai Tenkaichi 3 │ │ metadata.json │ │ RDS.txt │ │ │ ├───Fragile Dreams - Farewell Ruins of the Moon │ │ metadata.json │ │ R2G.txt │ │ │ ├───Link's Crossbow Training │ │ metadata.json │ │ RZP.txt │ │ │ ├───Little King's Story │ │ metadata.json │ │ RO3.txt │ │ │ ├───Mario Kart Wii │ │ metadata.json │ │ RMC.txt │ │ │ ├───Mario Strikers Charged │ │ metadata.json │ │ R4Q.txt │ │ │ ├───Metroid Prime 3 - Corruption │ │ metadata.json │ │ RM3.txt │ │ │ ├───Monster Hunter Tri │ │ DMH.txt │ │ metadata.json │ │ RMH.txt │ │ │ ├───Nights Journey of Dreams │ │ metadata.json │ │ R7E.txt │ │ │ ├───Okami │ │ metadata.json │ │ ROW.txt │ │ │ ├───Pandora's Tower │ │ metadata.json │ │ SX3.txt │ │ │ ├───Rune Factory Frontier │ │ metadata.json │ │ RUF.txt │ │ │ ├───Sin and Punishment - Star Successor │ │ metadata.json │ │ R2V.txt │ │ │ ├───Skylanders Spyro's Adventure │ │ metadata.json │ │ SSP.txt │ │ │ ├───Skyward Sword Bloom │ │ metadata.json │ │ SOU.txt │ │ │ ├───Sonic Colors │ │ metadata.json │ │ SNC.txt │ │ │ ├───Super Mario Galaxy │ │ metadata.json │ │ RMG.txt │ │ │ ├───Super Mario Galaxy 2 │ │ metadata.json │ │ SB4.txt │ │ │ ├───Super Mario Sunshine │ │ GMS.txt │ │ metadata.json │ │ │ ├───The Conduit │ │ metadata.json │ │ RCJ.txt │ │ │ ├───The House of the Dead Overkill │ │ metadata.json │ │ RHO.txt │ │ │ ├───The Last Story │ │ metadata.json │ │ SLS.txt │ │ │ ├───The Legend of Zelda Twilight Princess │ │ metadata.json │ │ RZD.txt │ │ │ ├───Wii Play │ │ metadata.json │ │ RHA.txt │ │ │ └───Xenoblade Chronicles │ metadata.json │ SX4.txt │ ├───Profiles │ └───Wiimote │ Wii Remote with MotionPlus Pointing.ini │ ├───Resources │ dolphin_logo.png │ dolphin_logo@2x.png │ Flag_Australia.png │ Flag_Australia@2x.png │ Flag_Australia@4x.png │ Flag_Europe.png │ Flag_Europe@2x.png │ Flag_Europe@4x.png │ Flag_France.png │ Flag_France@2x.png │ Flag_France@4x.png │ Flag_Germany.png │ Flag_Germany@2x.png │ Flag_Germany@4x.png │ Flag_International.png │ Flag_International@2x.png │ Flag_International@4x.png │ Flag_Italy.png │ Flag_Italy@2x.png │ Flag_Italy@4x.png │ Flag_Japan.png │ Flag_Japan@2x.png │ Flag_Japan@4x.png │ Flag_Korea.png │ Flag_Korea@2x.png │ Flag_Korea@4x.png │ Flag_Netherlands.png │ Flag_Netherlands@2x.png │ Flag_Netherlands@4x.png │ Flag_Russia.png │ Flag_Russia@2x.png │ Flag_Russia@4x.png │ Flag_Spain.png │ Flag_Spain@2x.png │ Flag_Spain@4x.png │ Flag_Taiwan.png │ Flag_Taiwan@2x.png │ Flag_Taiwan@4x.png │ Flag_Unknown.png │ Flag_Unknown@2x.png │ Flag_Unknown@4x.png │ Flag_USA.png │ Flag_USA@2x.png │ Flag_USA@4x.png │ isoproperties_disc.png │ isoproperties_file.png │ isoproperties_folder.png │ nobanner.png │ nobanner@2x.png │ nobanner@4x.png │ Platform_File.png │ Platform_File@2x.png │ Platform_File@4x.png │ Platform_Gamecube.png │ Platform_Gamecube@2x.png │ Platform_Gamecube@4x.png │ Platform_Wad.png │ Platform_Wad@2x.png │ Platform_Wad@4x.png │ Platform_Wii.png │ Platform_Wii@2x.png │ Platform_Wii@4x.png │ ├───Shaders │ │ 16bit.glsl │ │ 32bit.glsl │ │ acidmetal.glsl │ │ acidtrip.glsl │ │ acidtrip2.glsl │ │ asciiart.glsl │ │ AutoHDR.glsl │ │ auto_toon.glsl │ │ auto_toon2.glsl │ │ bad_bloom.glsl │ │ brighten.glsl │ │ chrismas.glsl │ │ cool1.glsl │ │ darkerbrighter.glsl │ │ default_pre_post_process.glsl │ │ emboss.glsl │ │ fire.glsl │ │ fire2.glsl │ │ firewater.glsl │ │ FXAA.glsl │ │ grayscale.glsl │ │ grayscale2.glsl │ │ integer_scaling.glsl │ │ invert.glsl │ │ invertedoutline.glsl │ │ invert_blue.glsl │ │ lens_distortion.glsl │ │ mad_world.glsl │ │ nightvision.glsl │ │ nightvision2.glsl │ │ nightvision2scanlines.glsl │ │ posterize.glsl │ │ posterize2.glsl │ │ primarycolors.glsl │ │ sepia.glsl │ │ sketchy.glsl │ │ spookey1.glsl │ │ spookey2.glsl │ │ sunset.glsl │ │ swap_RGB_BGR.glsl │ │ swap_RGB_BRG.glsl │ │ swap_RGB_GBR.glsl │ │ swap_RGB_GRB.glsl │ │ swap_RGB_RBG.glsl │ │ toxic.glsl │ │ │ ├───Anaglyph │ │ dubois-LCD-Amber-Blue.glsl │ │ dubois-LCD-Green-Magenta.glsl │ │ dubois.glsl │ │ fullcolor.glsl │ │ grayscale.glsl │ │ grayscale2.glsl │ │ │ └───Passive │ horizontal.glsl │ ├───Themes │ ├───Clean │ │ assembler_assemble.png │ │ assembler_assemble@2x.png │ │ assembler_assemble@4x.png │ │ assembler_clipboard.png │ │ assembler_inject.png │ │ assembler_inject@2x.png │ │ assembler_inject@4x.png │ │ assembler_new.png │ │ assembler_new@2x.png │ │ assembler_new@4x.png │ │ assembler_openasm.png │ │ assembler_openasm@2x.png │ │ assembler_openasm@4x.png │ │ assembler_save.png │ │ assembler_save@2x.png │ │ assembler_save@4x.png │ │ browse.png │ │ browse@2x.png │ │ browse@4x.png │ │ classic.png │ │ classic@2x.png │ │ classic@4x.png │ │ config.png │ │ config@2x.png │ │ config@4x.png │ │ debugger_add_breakpoint.png │ │ debugger_add_breakpoint@2x.png │ │ debugger_add_breakpoint@4x.png │ │ debugger_add_memorycheck.png │ │ debugger_add_memorycheck@2x.png │ │ debugger_add_memorycheck@4x.png │ │ debugger_breakpoint.png │ │ debugger_breakpoint@2x.png │ │ debugger_breakpoint@4x.png │ │ debugger_clear.png │ │ debugger_clear@2x.png │ │ debugger_clear@4x.png │ │ debugger_delete.png │ │ debugger_delete@2x.png │ │ debugger_delete@4x.png │ │ debugger_load.png │ │ debugger_load@2x.png │ │ debugger_load@4x.png │ │ debugger_save.png │ │ debugger_save@2x.png │ │ debugger_save@4x.png │ │ debugger_set_pc.png │ │ debugger_set_pc@2x.png │ │ debugger_set_pc@4x.png │ │ debugger_show_pc.png │ │ debugger_show_pc@2x.png │ │ debugger_show_pc@4x.png │ │ debugger_skip.png │ │ debugger_skip@2x.png │ │ debugger_skip@4x.png │ │ debugger_step_in.png │ │ debugger_step_in@2x.png │ │ debugger_step_in@4x.png │ │ debugger_step_out.png │ │ debugger_step_out@2x.png │ │ debugger_step_out@4x.png │ │ debugger_step_over.png │ │ debugger_step_over@2x.png │ │ debugger_step_over@4x.png │ │ fullscreen.png │ │ fullscreen@2x.png │ │ fullscreen@4x.png │ │ gcpad.png │ │ gcpad@2x.png │ │ gcpad@4x.png │ │ graphics.png │ │ graphics@2x.png │ │ graphics@4x.png │ │ open.png │ │ open@2x.png │ │ open@4x.png │ │ pause.png │ │ pause@2x.png │ │ pause@4x.png │ │ play.png │ │ play@2x.png │ │ play@4x.png │ │ refresh.png │ │ refresh@2x.png │ │ refresh@4x.png │ │ screenshot.png │ │ screenshot@2x.png │ │ screenshot@4x.png │ │ stop.png │ │ stop@2x.png │ │ stop@4x.png │ │ wiimote.png │ │ wiimote@2x.png │ │ wiimote@4x.png │ │ │ ├───Clean Blue │ │ assembler_assemble.png │ │ assembler_assemble@2x.png │ │ assembler_assemble@4x.png │ │ assembler_clipboard.png │ │ assembler_inject.png │ │ assembler_inject@2x.png │ │ assembler_inject@4x.png │ │ assembler_new.png │ │ assembler_new@2x.png │ │ assembler_new@4x.png │ │ assembler_openasm.png │ │ assembler_openasm@2x.png │ │ assembler_openasm@4x.png │ │ assembler_save.png │ │ assembler_save@2x.png │ │ assembler_save@4x.png │ │ browse.png │ │ browse@2x.png │ │ browse@4x.png │ │ classic.png │ │ classic@2x.png │ │ classic@4x.png │ │ config.png │ │ config@2x.png │ │ config@4x.png │ │ debugger_add_breakpoint.png │ │ debugger_add_breakpoint@2x.png │ │ debugger_add_breakpoint@4x.png │ │ debugger_add_memorycheck.png │ │ debugger_add_memorycheck@2x.png │ │ debugger_add_memorycheck@4x.png │ │ debugger_breakpoint.png │ │ debugger_breakpoint@2x.png │ │ debugger_breakpoint@4x.png │ │ debugger_clear.png │ │ debugger_clear@2x.png │ │ debugger_clear@4x.png │ │ debugger_delete.png │ │ debugger_delete@2x.png │ │ debugger_delete@4x.png │ │ debugger_load.png │ │ debugger_load@2x.png │ │ debugger_load@4x.png │ │ debugger_save.png │ │ debugger_save@2x.png │ │ debugger_save@4x.png │ │ debugger_set_pc.png │ │ debugger_set_pc@2x.png │ │ debugger_set_pc@4x.png │ │ debugger_show_pc.png │ │ debugger_show_pc@2x.png │ │ debugger_show_pc@4x.png │ │ debugger_skip.png │ │ debugger_skip@2x.png │ │ debugger_skip@4x.png │ │ debugger_step_in.png │ │ debugger_step_in@2x.png │ │ debugger_step_in@4x.png │ │ debugger_step_out.png │ │ debugger_step_out@2x.png │ │ debugger_step_out@4x.png │ │ debugger_step_over.png │ │ debugger_step_over@2x.png │ │ debugger_step_over@4x.png │ │ fullscreen.png │ │ fullscreen@2x.png │ │ fullscreen@4x.png │ │ gcpad.png │ │ gcpad@2x.png │ │ gcpad@4x.png │ │ graphics.png │ │ graphics@2x.png │ │ graphics@4x.png │ │ open.png │ │ open@2x.png │ │ open@4x.png │ │ pause.png │ │ pause@2x.png │ │ pause@4x.png │ │ play.png │ │ play@2x.png │ │ play@4x.png │ │ refresh.png │ │ refresh@2x.png │ │ refresh@4x.png │ │ screenshot.png │ │ screenshot@2x.png │ │ screenshot@4x.png │ │ stop.png │ │ stop@2x.png │ │ stop@4x.png │ │ wiimote.png │ │ wiimote@2x.png │ │ wiimote@4x.png │ │ │ ├───Clean Emerald │ │ assembler_assemble.png │ │ assembler_assemble@2x.png │ │ assembler_assemble@4x.png │ │ assembler_clipboard.png │ │ assembler_inject.png │ │ assembler_inject@2x.png │ │ assembler_inject@4x.png │ │ assembler_new.png │ │ assembler_new@2x.png │ │ assembler_new@4x.png │ │ assembler_openasm.png │ │ assembler_openasm@2x.png │ │ assembler_openasm@4x.png │ │ assembler_save.png │ │ assembler_save@2x.png │ │ assembler_save@4x.png │ │ browse.png │ │ browse@2x.png │ │ browse@4x.png │ │ classic.png │ │ classic@2x.png │ │ classic@4x.png │ │ config.png │ │ config@2x.png │ │ config@4x.png │ │ debugger_add_breakpoint.png │ │ debugger_add_breakpoint@2x.png │ │ debugger_add_breakpoint@4x.png │ │ debugger_add_memorycheck.png │ │ debugger_add_memorycheck@2x.png │ │ debugger_add_memorycheck@4x.png │ │ debugger_breakpoint.png │ │ debugger_breakpoint@2x.png │ │ debugger_breakpoint@4x.png │ │ debugger_clear.png │ │ debugger_clear@2x.png │ │ debugger_clear@4x.png │ │ debugger_delete.png │ │ debugger_delete@2x.png │ │ debugger_delete@4x.png │ │ debugger_load.png │ │ debugger_load@2x.png │ │ debugger_load@4x.png │ │ debugger_save.png │ │ debugger_save@2x.png │ │ debugger_save@4x.png │ │ debugger_set_pc.png │ │ debugger_set_pc@2x.png │ │ debugger_set_pc@4x.png │ │ debugger_show_pc.png │ │ debugger_show_pc@2x.png │ │ debugger_show_pc@4x.png │ │ debugger_skip.png │ │ debugger_skip@2x.png │ │ debugger_skip@4x.png │ │ debugger_step_in.png │ │ debugger_step_in@2x.png │ │ debugger_step_in@4x.png │ │ debugger_step_out.png │ │ debugger_step_out@2x.png │ │ debugger_step_out@4x.png │ │ debugger_step_over.png │ │ debugger_step_over@2x.png │ │ debugger_step_over@4x.png │ │ fullscreen.png │ │ fullscreen@2x.png │ │ fullscreen@4x.png │ │ gcpad.png │ │ gcpad@2x.png │ │ gcpad@4x.png │ │ graphics.png │ │ graphics@2x.png │ │ graphics@4x.png │ │ open.png │ │ open@2x.png │ │ open@4x.png │ │ pause.png │ │ pause@2x.png │ │ pause@4x.png │ │ play.png │ │ play@2x.png │ │ play@4x.png │ │ refresh.png │ │ refresh@2x.png │ │ refresh@4x.png │ │ screenshot.png │ │ screenshot@2x.png │ │ screenshot@4x.png │ │ stop.png │ │ stop@2x.png │ │ stop@4x.png │ │ wiimote.png │ │ wiimote@2x.png │ │ wiimote@4x.png │ │ │ ├───Clean Lite │ │ assembler_assemble.png │ │ assembler_assemble@2x.png │ │ assembler_assemble@4x.png │ │ assembler_clipboard.png │ │ assembler_inject.png │ │ assembler_inject@2x.png │ │ assembler_inject@4x.png │ │ assembler_new.png │ │ assembler_new@2x.png │ │ assembler_new@4x.png │ │ assembler_openasm.png │ │ assembler_openasm@2x.png │ │ assembler_openasm@4x.png │ │ assembler_save.png │ │ assembler_save@2x.png │ │ assembler_save@4x.png │ │ browse.png │ │ browse@2x.png │ │ browse@4x.png │ │ classic.png │ │ classic@2x.png │ │ classic@4x.png │ │ config.png │ │ config@2x.png │ │ config@4x.png │ │ debugger_add_breakpoint.png │ │ debugger_add_breakpoint@2x.png │ │ debugger_add_breakpoint@4x.png │ │ debugger_add_memorycheck.png │ │ debugger_add_memorycheck@2x.png │ │ debugger_add_memorycheck@4x.png │ │ debugger_breakpoint.png │ │ debugger_breakpoint@2x.png │ │ debugger_breakpoint@4x.png │ │ debugger_clear.png │ │ debugger_clear@2x.png │ │ debugger_clear@4x.png │ │ debugger_delete.png │ │ debugger_delete@2x.png │ │ debugger_delete@4x.png │ │ debugger_load.png │ │ debugger_load@2x.png │ │ debugger_load@4x.png │ │ debugger_save.png │ │ debugger_save@2x.png │ │ debugger_save@4x.png │ │ debugger_set_pc.png │ │ debugger_set_pc@2x.png │ │ debugger_set_pc@4x.png │ │ debugger_show_pc.png │ │ debugger_show_pc@2x.png │ │ debugger_show_pc@4x.png │ │ debugger_skip.png │ │ debugger_skip@2x.png │ │ debugger_skip@4x.png │ │ debugger_step_in.png │ │ debugger_step_in@2x.png │ │ debugger_step_in@4x.png │ │ debugger_step_out.png │ │ debugger_step_out@2x.png │ │ debugger_step_out@4x.png │ │ debugger_step_over.png │ │ debugger_step_over@2x.png │ │ debugger_step_over@4x.png │ │ fullscreen.png │ │ fullscreen@2x.png │ │ fullscreen@4x.png │ │ gcpad.png │ │ gcpad@2x.png │ │ gcpad@4x.png │ │ graphics.png │ │ graphics@2x.png │ │ graphics@4x.png │ │ open.png │ │ open@2x.png │ │ open@4x.png │ │ pause.png │ │ pause@2x.png │ │ pause@4x.png │ │ play.png │ │ play@2x.png │ │ play@4x.png │ │ refresh.png │ │ refresh@2x.png │ │ refresh@4x.png │ │ screenshot.png │ │ screenshot@2x.png │ │ screenshot@4x.png │ │ stop.png │ │ stop@2x.png │ │ stop@4x.png │ │ wiimote.png │ │ wiimote@2x.png │ │ wiimote@4x.png │ │ │ └───Clean Pink │ assembler_assemble.png │ assembler_assemble@2x.png │ assembler_assemble@4x.png │ assembler_clipboard.png │ assembler_inject.png │ assembler_inject@2x.png │ assembler_inject@4x.png │ assembler_new.png │ assembler_new@2x.png │ assembler_new@4x.png │ assembler_openasm.png │ assembler_openasm@2x.png │ assembler_openasm@4x.png │ assembler_save.png │ assembler_save@2x.png │ assembler_save@4x.png │ browse.png │ browse@2x.png │ browse@4x.png │ classic.png │ classic@2x.png │ classic@4x.png │ config.png │ config@2x.png │ config@4x.png │ debugger_add_breakpoint.png │ debugger_add_breakpoint@2x.png │ debugger_add_breakpoint@4x.png │ debugger_add_memorycheck.png │ debugger_add_memorycheck@2x.png │ debugger_add_memorycheck@4x.png │ debugger_breakpoint.png │ debugger_breakpoint@2x.png │ debugger_breakpoint@4x.png │ debugger_clear.png │ debugger_clear@2x.png │ debugger_clear@4x.png │ debugger_delete.png │ debugger_delete@2x.png │ debugger_delete@4x.png │ debugger_load.png │ debugger_load@2x.png │ debugger_load@4x.png │ debugger_save.png │ debugger_save@2x.png │ debugger_save@4x.png │ debugger_set_pc.png │ debugger_set_pc@2x.png │ debugger_set_pc@4x.png │ debugger_show_pc.png │ debugger_show_pc@2x.png │ debugger_show_pc@4x.png │ debugger_skip.png │ debugger_skip@2x.png │ debugger_skip@4x.png │ debugger_step_in.png │ debugger_step_in@2x.png │ debugger_step_in@4x.png │ debugger_step_out.png │ debugger_step_out@2x.png │ debugger_step_out@4x.png │ debugger_step_over.png │ debugger_step_over@2x.png │ debugger_step_over@4x.png │ fullscreen.png │ fullscreen@2x.png │ fullscreen@4x.png │ gcpad.png │ gcpad@2x.png │ gcpad@4x.png │ graphics.png │ graphics@2x.png │ graphics@4x.png │ open.png │ open@2x.png │ open@4x.png │ pause.png │ pause@2x.png │ pause@4x.png │ play.png │ play@2x.png │ play@4x.png │ refresh.png │ refresh@2x.png │ refresh@4x.png │ screenshot.png │ screenshot@2x.png │ screenshot@4x.png │ stop.png │ stop@2x.png │ stop@4x.png │ wiimote.png │ wiimote@2x.png │ wiimote@4x.png │ └───Wii └───shared2 └───wc24 │ misc.bin │ nwc24dl.bin │ nwc24fl.bin │ nwc24fls.bin │ nwc24msg.cbk │ nwc24msg.cfg │ └───mbox Readme.txt wc24recv.ctl wc24recv.mbx wc24send.ctl wc24send.mbx ```

Iridium-IO commented 9 months ago

This is really strange actually. I'll do some digging but I'm not sure what actually caused it.

Program Files I get, but the Dolphin and PPSSPP folders failing is just strange

BuyMyMojo commented 9 months ago

This is really strange actually. I'll do some digging but I'm not sure what actually caused it.

Program Files I get, but the Dolphin and PPSSPP folders failing is just strange

NDS SAVES, PPSSPO and Dolphin are the 3 folder that I can open in the GUI without it crashing

Iridium-IO commented 8 months ago

@BuyMyMojo can you confirm that it works for you on version 3.0.3?

Iridium-IO commented 8 months ago

@Starbuck1991 can you also confirm that if you try to run v3.0.3 again that it still works? I'm trying to work out whether v3.0.4 actually broke it or if there's another coincidence (a new windows update, program install, etc.) that happened at the same time.

Also can you and @BuyMyMojo do the following for a folder that crashes:

  1. Open Event Viewer
  2. Click on Windows Logs > Application
  3. Find the Error messages related to CompactGUI and copy and paste that error here. It should look something like:
Application: CompactGUI.exe
CoreCLR Version: 6.0.2724.6912
.NET Version: 6.0.27
Description: The process was terminated due to an unhandled exception.
Exception Info: ...................
Starbuck1991 commented 8 months ago

@Iridium-IO I have confirmed that version 3.0.3 does not exhibit the issue, whereas version 3.0.4 does. As for the error log, I have two entries related to the issue:

Event 1026, .NET Runtime Application: CompactGUI.exe CoreCLR Version: 6.0.2623.60508 .NET Version: 6.0.26 Description: The process was terminated due to an unhandled exception. Exception Info: System.UnauthorizedAccessException: Access to the path 'C:\Program Files\Archivos comunes' is denied. at System.IO.Enumeration.FileSystemEnumerator1.CreateRelativeDirectoryHandle(ReadOnlySpan1 relativePath, String fullPath) at System.IO.Enumeration.FileSystemEnumerator1.MoveNext() at System.Linq.Enumerable.Any[TSource](IEnumerable1 source) at CompactGUI.Core.SharedMethods.verifyFolder(String folder) at CompactGUI.MainViewModel.SelectFolder(String path) at CompactGUI.MainWindow.SearchClicked(Object sender, MouseButtonEventArgs e) at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.Run() at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run() at CompactGUI.Application.Main()

Event 1000, Application Error Nombre de la aplicación con errores: CompactGUI.exe, versión: 3.0.0.0, marca de tiempo: 0x65ab0000 Nombre del módulo con errores: KERNELBASE.dll, versión: 10.0.22621.2134, marca de tiempo: 0xc42b59fb Código de excepción: 0xe0434352 Desplazamiento de errores: 0x0000000000064c3c Identificador del proceso con errores: 0x0x3BC4 Hora de inicio de la aplicación con errores: 0x0x1DA6AFB0C19041A Ruta de acceso de la aplicación con errores: C:\ProgramData\CompactGUI\CompactGUI.exe Ruta de acceso del módulo con errores: C:\Windows\System32\KERNELBASE.dll Identificador del informe: ef25f86a-ff84-43bd-b9f1-c3d19aa136ed Nombre completo del paquete con errores: Identificador de aplicación relativa del paquete con errores:

Iridium-IO commented 8 months ago

Thanks! That actually nails the problem.

When I added the check to ensure the folder is not empty in this commit, I used:

If Not IO.Directory.EnumerateFiles(folder, "*", SearchOption.AllDirectories).Any() Then : Return (False, "Directory is empty")`

The problem is, that EnumerateFiles() throws an error if any subdirectory is not accessible due to not having permission to access it.

Can you try this version and see if it works:

CompactGUI.zip

Starbuck1991 commented 8 months ago

@Iridium-IO Yes, this version resolves the issue. It actually prompts for a program restart as an administrator, as it should, and no longer crashes.

Iridium-IO commented 8 months ago

@Starbuck1991 excellent, I'll push it in a proper release now

BuyMyMojo commented 8 months ago

@Starbuck1991 can you also confirm that if you try to run v3.0.3 again that it still works? I'm trying to work out whether v3.0.4 actually broke it or if there's another coincidence (a new windows update, program install, etc.) that happened at the same time.

Also can you and @BuyMyMojo do the following for a folder that crashes:

  1. Open Event Viewer
  2. Click on Windows Logs > Application
  3. Find the Error messages related to CompactGUI and copy and paste that error here. It should look something like:
Application: CompactGUI.exe
CoreCLR Version: 6.0.2724.6912
.NET Version: 6.0.27
Description: The process was terminated due to an unhandled exception.
Exception Info: ...................

Hey sorry I've been busy with work:

My folders do not open with 3.0.3 and here is the crash log:

Application: CompactGUI.exe
CoreCLR Version: 6.0.2623.60508
.NET Version: 6.0.26
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidCastException: Specified cast is not valid.
   at CompactGUI.Core.Analyser.HasDirectoryWritePermission()
   at CompactGUI.MainViewModel.AnalyseBegin()
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at CompactGUI.Application.Main()

in the version you published a little bit ago:

Application: CompactGUI.exe
CoreCLR Version: 6.0.2724.6912
.NET Version: 6.0.27
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidCastException: Specified cast is not valid.
   at CompactGUI.Core.Analyser.HasDirectoryWritePermission()
   at CompactGUI.MainViewModel.AnalyseBegin()
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at CompactGUI.Application.Main()
Arecsu commented 7 months ago

Hello! I'm re-opening this because I get this on v3.2.1

Application: CompactGUI.exe
CoreCLR Version: 6.0.2924.17105
.NET Version: 6.0.29
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidCastException: Unable to cast object of type 'System.Security.Principal.SecurityIdentifier' to type 'System.Security.Principal.NTAccount'.
   at CompactGUI.Core.Analyser.HasDirectoryWritePermission()
   at CompactGUI.MainViewModel.AnalyseBegin()
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   --- End of stack trace from previous location ---
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at CompactGUI.Application.Main 

I've reseted the settings with echo [] > %LOCALAPPDATA%\IridiumIO\CompactGUI\settings.json but still, can't compress a folder.

As additional info, this folder has other subfolders and files copied from a previous Windows installation under a different user. I can compress pretty much any folder that has been made within this current Windows installation, and even some from the previous one. But this folder and files specifically, I can't for some reason

Also, tried icacls "C:\path\to\folder" /grant USERNAME:(OI)(CI)F /T, which successfully processed all files but still same error

update: ok, any folder inside my User folder (C:\Users\USERNAME) results in the app crashing this way

update 2: related to https://github.com/IridiumIO/CompactGUI/issues/356, I have a weird "Account Unknown" in the permissions of my user folder. I'm pretty sure this happened because I booted into the previous windows installation and I accessed the folder from there.

FIX

Yeah, that was it! When I tried to access my user folder from another Windows installation, the following messaged popped up:

You-dont-currently-have-permissions-to-access-this-folder-in-Windows-10

Of course, I accepted and then I could enter. What the Continue button seems to do is give every folder and file some permissions related to the current user from that Windows installation, and then those permissions carries over any other Windows installation as "Account Unknown".

This messes up with CompactGUI, making it crash. The solution is just to right click the user folder (or any other folder that has been affected by it in the disk) go to the Security tab, then Edit..., and remove those Account Unknown group/usernames from it. It will affect the parent folder and pretty much any subdirectory/files on them.

Perhaps this advice would be useful in the FAQ of the app?

Iridium-IO commented 7 months ago

Hello! I'm re-opening this because I get this on v3.2.1


Application: CompactGUI.exe

CoreCLR Version: 6.0.2924.17105

.NET Version: 6.0.29

Description: The process was terminated due to an unhandled exception.

Exception Info: System.InvalidCastException: Unable to cast object of type 'System.Security.Principal.SecurityIdentifier' to type 'System.Security.Principal.NTAccount'.

   at CompactGUI.Core.Analyser.HasDirectoryWritePermission()

   at CompactGUI.MainViewModel.AnalyseBegin()

   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)

   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

   at System.Windows.Threading.DispatcherOperation.InvokeImpl()

   at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(Object obj)

   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)

   --- End of stack trace from previous location ---

   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)

   at System.Windows.Threading.DispatcherOperation.Invoke()

   at System.Windows.Threading.Dispatcher.ProcessQueue()

   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)

   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)

   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)

   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)

   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)

   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)

   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)

   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)

   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)

   at System.Windows.Threading.Dispatcher.Run()

   at System.Windows.Application.RunDispatcher(Object ignore)

   at System.Windows.Application.RunInternal(Window window)

   at System.Windows.Application.Run()

   at CompactGUI.Application.Main 

I've reseted the settings with echo [] > %LOCALAPPDATA%\IridiumIO\CompactGUI\settings.json but still, can't compress a folder.

As additional info, this folder has other subfolders and files copied from a previous Windows installation under a different user. I can compress pretty much any folder that has been made within this current Windows installation, and even some from the previous one. But this folder and files specifically, I can't for some reason

Also, tried icacls "C:\path\to\folder" /grant USERNAME:(OI)(CI)F /T, which successfully processed all files but still same error

update: ok, any folder inside my User folder (C:\Users\USERNAME) results in the app crashing this way

update 2: related to https://github.com/IridiumIO/CompactGUI/issues/356, I have a weird "Account Unknown" in the permissions of my user folder. I'm pretty sure this happened because I booted into the previous windows installation and I accessed the folder from there.

FIX

Yeah, that was it! When I tried to access my user folder from another Windows installation, the following messaged popped up:

You-dont-currently-have-permissions-to-access-this-folder-in-Windows-10

Of course, I accepted and then I could enter. What the Continue button seems to do is give every folder and file some permissions related to the current user from that Windows installation, and then those permissions carries over any other Windows installation as "Account Unknown".

This messes up with CompactGUI, making it crash. The solution is just to right click the user folder (or any other folder that has been affected by it in the disk) go to the Security tab, then Edit..., and remove those Account Unknown group/usernames from it. It will affect the parent folder and pretty much any subdirectory/files on them.

Perhaps this advice would be useful in the FAQ of the app?

I've been trying to work out how those "Account Unknown" groups get generated, thank you for giving me something concrete to test with! It explains why the issue seems to be so variable. I hate how convoluted Windows' access permissions are, they're such a headache to deal with

Arecsu commented 7 months ago

@Iridium-IO you're welcome!!

Detecting and then asking the user to removing unknown accounts before proceeding I think would be the best UX path. Chances are these accounts are useless for 98% of the people. Like myself, those are often inherited from booting alternate Windows installation and accesing - mostly - the Users folders. Furthermore, if it wasn't because CompactGUI couldn't compress those folders, I might never have known about these permissions in my folders!

After some research, I found this Powershell script to be quite useful. Didn't test it but my intuition tells me it's going to work great for your application: https://www.alitajran.com/remove-orphaned-sids/

You might find it useful to split and take the functionality from it. I imagine two ways to do it:

Which path would be the fastest for the average folder? Don't know. Maybe the script to just detect the permissions is slow, or maybe it is very fast. Only way to find out is to test!

Edit: Hmm for some reason I can't t get it to work. There's this other one also, which looks way simpler: http://www.ruudborst.nl/ps-one-liner-6-remove-orphaned-unresolvable-sids/

I tested this one and works great. In my Users folder, it took like 1 minute to process everything

This is the one-liner:

$arr=@();gci 'C:\Users\USERNAME' -recurse | % {$path=$_.fullname;$acl=get-acl $path;$sid=$acl.access | ? {$_.identityreference -match "S-1-.*" -and !($_.isinherited)};if($sid){$sid| % {$co=[pscustomobject]@{Path=$path;RemovedSID=$_.identityreference};$co|fl;$arr+=$co;$null=$acl.removeaccessrule($_)};set-acl $path $acl}};'Report';$arr|ft -auto

And this is a cute clean explanation from ChatGPT about it:

  1. Initialize Variables: Creates an empty array $arr to store a summary report.
  2. Loop Through Files and Directories: Recursively iterates through all files and directories under 'C:\Users\USERNAME'
  3. Retrieve ACL: Retrieves the Access Control List (ACL) for each file or directory.
  4. Filter Access Entries: Filters the ACL to find access entries with SIDs (Security Identifiers) starting with "S-1-" and not inherited from parent folders.
  5. Check for Unresolvable SIDs: If any unresolvable SIDs are found, processes each one:
    • Creates a custom PowerShell object $co containing the file path and the unresolvable SID.
    • Outputs the object's properties using Format-List.
    • Adds the object to the $arr array for reporting purposes.
    • Removes the access rule associated with the unresolvable SID from the ACL.
  6. Apply Modified ACL: Sets the modified ACL back to the file or directory.
  7. Report: Displays the summary report containing paths and removed SIDs using Format-Table.