├── .gitignore ├── .tfignore ├── 3DS ├── 3DS.csproj ├── BYML.cs ├── Bnr.cs ├── CBMD.cs ├── CTPK.cs ├── DVLB.cs ├── Extensions.cs ├── GPU │ ├── PICA │ │ └── FragmentLightSource.cs │ └── Textures.cs ├── MSBT.cs ├── Moflex.cs ├── N3DSPlugin.cs ├── NintendoWare │ ├── FONT │ │ └── CFNT.cs │ ├── GFX │ │ ├── BoundingVolume.cs │ │ ├── CANM.cs │ │ ├── CGFX.cs │ │ ├── CGFXGenerator.cs │ │ ├── CGFXShader.cs │ │ ├── CGFXWriterContext.cs │ │ ├── CMAT.cs │ │ ├── CMATSave.cs │ │ ├── CMDL.cs │ │ ├── DICT.cs │ │ ├── PatriciaTreeGenerator.cs │ │ ├── Shaders │ │ │ └── CGFXFrag.c │ │ └── TXOB.cs │ ├── H3D │ │ └── BCH.cs │ ├── LYT1 │ │ ├── BasicShader.cs │ │ ├── CLAN.cs │ │ ├── CLIM.cs │ │ ├── CLYT.cs │ │ ├── CLYTShader.cs │ │ ├── DARC.cs │ │ ├── bnd1.cs │ │ ├── mat1.cs │ │ ├── pan1.cs │ │ ├── pic1.cs │ │ ├── txt1.cs │ │ └── wnd1.cs │ └── SND │ │ ├── CGRP.cs │ │ ├── CSAR.cs │ │ ├── CSEQ.cs │ │ ├── CSTM.cs │ │ └── CWAV.cs ├── Properties │ └── AssemblyInfo.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── edit-language.png │ ├── edit.png │ ├── film.png │ ├── films.png │ ├── image-sunset.png │ ├── image.png │ ├── image16.png │ ├── images-stack.png │ ├── jar.png │ ├── leaf.png │ ├── light-bulb.png │ ├── lighthouse-shine.png │ ├── plus.png │ ├── point.png │ ├── preview_background.png │ ├── slide.png │ ├── t-shirt-gray.png │ ├── t-shirt.png │ ├── table.png │ ├── tables-stacks.png │ ├── weather-cloud.png │ ├── weather-clouds.png │ ├── zone.png │ ├── zone16.png │ └── zones-stack.png ├── SARC.cs ├── SARCEFESFSFile.cs ├── SARCHashTable.cs ├── SMDH.cs ├── ThemeFile.cs ├── ThemeIconFile.cs ├── ThemeNew.cs ├── UI │ ├── BCLIMGenDialog.Designer.cs │ ├── BCLIMGenDialog.cs │ ├── BCLIMGenDialog.resx │ ├── CFNTViewer.Designer.cs │ ├── CFNTViewer.cs │ ├── CFNTViewer.resx │ ├── CGFXGenDialog.Designer.cs │ ├── CGFXGenDialog.cs │ ├── CGFXGenDialog.resx │ ├── CGFXViewer.cs │ ├── CGFXViewer.designer.cs │ ├── CGFXViewer.resx │ ├── CLIMViewer.Designer.cs │ ├── CLIMViewer.cs │ ├── CLIMViewer.resx │ ├── CLYTViewer.Designer.cs │ ├── CLYTViewer.cs │ ├── CLYTViewer.resx │ ├── CMDLViewer.Designer.cs │ ├── CMDLViewer.cs │ ├── CMDLViewer.resx │ ├── CSEQViewer.Designer.cs │ ├── CSEQViewer.cs │ ├── CSEQViewer.resx │ ├── CSTMViewer.Designer.cs │ ├── CSTMViewer.cs │ ├── CSTMViewer.resx │ ├── DARCViewer.Designer.cs │ ├── DARCViewer.cs │ ├── DARCViewer.resx │ ├── SAHTViewer.Designer.cs │ ├── SAHTViewer.cs │ ├── SAHTViewer.resx │ ├── SARCFileAdd.Designer.cs │ ├── SARCFileAdd.cs │ ├── SARCFileAdd.resx │ ├── SARCViewer.Designer.cs │ ├── SARCViewer.cs │ ├── SARCViewer.resx │ ├── SMDHViewer.Designer.cs │ ├── SMDHViewer.cs │ ├── SMDHViewer.resx │ ├── TXOBViewer.Designer.cs │ ├── TXOBViewer.cs │ ├── TXOBViewer.resx │ ├── ThemeIconViewer.Designer.cs │ ├── ThemeIconViewer.cs │ ├── ThemeIconViewer.resx │ ├── ThemeViewer.Designer.cs │ ├── ThemeViewer.cs │ ├── ThemeViewer.resx │ ├── ThemeViewerNew.Designer.cs │ ├── ThemeViewerNew.cs │ └── ThemeViewerNew.resx └── packages.config ├── CommonCompressors ├── CommonCompressors.csproj ├── LZ10.cs ├── LZ11.cs ├── LZ77.cs ├── Properties │ └── AssemblyInfo.cs └── YAZ0.cs ├── CommonFiles ├── CommonFiles.csproj ├── DAE.cs ├── MTL.cs ├── Maya │ └── MayaASCIIWriter.cs ├── OBJ.cs ├── Properties │ └── AssemblyInfo.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── control-pause.png │ ├── control.png │ ├── image.png │ └── plus.png ├── UI │ ├── WavePlayer.Designer.cs │ ├── WavePlayer.cs │ └── WavePlayer.resx └── WAV.cs ├── EveryFileExplorer.sln ├── EveryFileExplorer ├── EveryFileExplorer.csproj ├── Files │ └── FileManager.cs ├── Form1.Designer.cs ├── Form1.cs ├── Form1.resx ├── NAudio.dll ├── Plugins │ ├── Plugin.cs │ └── PluginManager.cs ├── Program.cs ├── Propeller_Box_Artwork_-_Super_Mario_3D_World.ico ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── document.png │ └── folder-open.png └── app.config ├── GCNWii ├── BCK.cs ├── BCO.cs ├── GCNWii.csproj ├── GPU │ └── Textures.cs ├── JSystem │ ├── BTI.cs │ └── RARC.cs ├── Properties │ └── AssemblyInfo.cs ├── RFNT.cs ├── RLAN.cs ├── RLYT.cs ├── RSAR.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── image.png │ └── zone.png ├── TPL.cs ├── U8.cs └── UI │ ├── BTIViewer.Designer.cs │ ├── BTIViewer.cs │ ├── BTIViewer.resx │ ├── RARCViewer.Designer.cs │ ├── RARCViewer.cs │ ├── RARCViewer.resx │ ├── TPLViewer.Designer.cs │ ├── TPLViewer.cs │ ├── TPLViewer.resx │ ├── U8Viewer.Designer.cs │ ├── U8Viewer.cs │ └── U8Viewer.resx ├── LegoPirates ├── FMV.cs ├── LegoPirates.csproj ├── Properties │ └── AssemblyInfo.cs └── UI │ ├── FMVViewer.cs │ ├── FMVViewer.designer.cs │ └── FMVViewer.resx ├── LibEveryFileExplorer ├── 3D │ ├── Polygon.cs │ └── Triangle.cs ├── Collections │ ├── Matrix33.cs │ ├── Matrix34.cs │ ├── Matrix43.cs │ ├── Matrix44.cs │ ├── Vector2.cs │ ├── Vector3.cs │ └── Vector4.cs ├── ComponentModel │ ├── HexReversedAttribute.cs │ ├── HexTypeConverter.cs │ ├── PrettyArrayConverter.cs │ └── ValueTypeTypeConverter.cs ├── Compression │ ├── CompressionFormat.cs │ └── ICompressable.cs ├── EFEPlugin.cs ├── EveryFileExplorerUtil.cs ├── Files │ ├── EFEDiskFile.cs │ ├── EFEFile.cs │ ├── FileFormat.cs │ ├── IChildReactive.cs │ ├── IConvertable.cs │ ├── IEmptyCreatable.cs │ ├── IFileCreatable.cs │ ├── IUseOtherFiles.cs │ ├── IViewable.cs │ ├── IWriteable.cs │ ├── SimpleFileSystem │ │ ├── EFESFSFile.cs │ │ ├── SFSDirectory.cs │ │ └── SFSFile.cs │ └── ViewableFile.cs ├── GFX │ ├── BitmapFont.cs │ ├── ColorFormat.cs │ ├── DTX.cs │ ├── ETC1.cs │ ├── GFXUtil.cs │ └── PaletteUtil.cs ├── GameData │ └── GameDataSection.cs ├── HexUtil.cs ├── IO │ ├── EndianBinaryReader.cs │ ├── EndianBinaryReaderEx.cs │ ├── EndianBinaryWriter.cs │ ├── EndianBinaryWriterEx.cs │ ├── IOUtil.cs │ ├── Serialization │ │ ├── BinaryAttribute.cs │ │ ├── BinaryBOMAttribute.cs │ │ ├── BinaryBooleanSizeAttribute.cs │ │ ├── BinaryByteArraySignatureAttribute.cs │ │ ├── BinaryFixedPointAttribute.cs │ │ ├── BinaryFixedSizeAttribute.cs │ │ ├── BinaryIgnoreAttribute.cs │ │ ├── BinaryStringEncodingAttribute.cs │ │ ├── BinaryStringNTAttribute.cs │ │ └── BinaryStringSignatureAttribute.cs │ └── SignatureNotCorrectException.cs ├── LibEveryFileExplorer.csproj ├── Math │ └── MathUtil.cs ├── Projects │ └── Project.cs ├── Properties │ └── AssemblyInfo.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── folder-open.png │ └── folder.png ├── SND │ ├── DSPADPCM.cs │ └── SNDUtil.cs ├── Script │ └── EFEScript.cs ├── StaticDynamic.cs ├── UI │ ├── FileBrowser.Designer.cs │ ├── FileBrowser.cs │ ├── FileBrowser.resx │ ├── GameDataSectionViewer.cs │ ├── GameDataSectionViewer.resx │ ├── GameDataSectionViewerBase.Designer.cs │ ├── GameDataSectionViewerBase.cs │ ├── GameDataSectionViewerBase.resx │ ├── ListViewNF.cs │ └── MainMenu.cs └── Win32Util.cs ├── Libraries ├── HashTable.saht ├── Microsoft.VisualBasic.PowerPacks.Vs.dll ├── NAudio.dll ├── OpenTK.dll ├── Tao.OpenGl.dll ├── Tao.Platform.Windows.dll ├── ctr_WaveConverter32 │ ├── SoundFoundation.dll │ ├── SoundFoundationCtr.dll │ ├── ToolDevelopmentKit.dll │ ├── WaveCodecCtr.dll │ └── ctr_WaveConverter32.exe └── vgmstream │ ├── at3plusdecoder.dll │ ├── avcodec-vgmstream-57.dll │ ├── avformat-vgmstream-57.dll │ ├── avutil-vgmstream-55.dll │ ├── in_vgmstream.dll │ ├── libg719_decode.dll │ ├── libg7221_decode.dll │ ├── libmpg123-0.dll │ ├── libvorbis.dll │ ├── readme.txt │ ├── test.exe │ └── xmp-vgmstream.dll ├── MarioKart ├── KCLHeader.cs ├── KCLOctree.cs ├── MK64 │ ├── F3DEX.cs │ ├── LevelScript.cs │ ├── MIO0.cs │ └── MK64.cs ├── MK7 │ ├── BCTR.cs │ ├── BSEQ.cs │ ├── CDAB.cs │ ├── KCL.cs │ ├── KCLInformations.cs │ ├── KCLInfos │ │ └── KCLInformations.xml │ ├── KMP │ │ ├── AREA.cs │ │ ├── CAME.cs │ │ ├── CDMD.cs │ │ ├── CKPH.cs │ │ ├── CKPT.cs │ │ ├── ENPH.cs │ │ ├── ENPT.cs │ │ ├── GLPH.cs │ │ ├── GLPT.cs │ │ ├── GOBJ.cs │ │ ├── ITPH.cs │ │ ├── ITPT.cs │ │ ├── JGPT.cs │ │ ├── KTPT.cs │ │ └── POTI.cs │ ├── MK7.cs │ └── ObjFlow.cs ├── MKDS │ ├── ARM9.cs │ ├── KCL.cs │ └── NKM │ │ ├── AREA.cs │ │ ├── CAME.cs │ │ ├── CPAT.cs │ │ ├── CPOI.cs │ │ ├── EPAT.cs │ │ ├── EPOI.cs │ │ ├── IPAT.cs │ │ ├── IPOI.cs │ │ ├── KTP2.cs │ │ ├── KTPC.cs │ │ ├── KTPJ.cs │ │ ├── KTPM.cs │ │ ├── KTPS.cs │ │ ├── MEPA.cs │ │ ├── MEPO.cs │ │ ├── NKMD.cs │ │ ├── OBJI.cs │ │ ├── PATH.cs │ │ ├── POIT.cs │ │ └── STAG.cs ├── MarioKart.csproj ├── MarioKartPlugin.cs ├── Properties │ └── AssemblyInfo.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── Cone.png │ ├── OBJ_2D01.png │ ├── OBJ_2E01.png │ ├── OBJ_3501.png │ ├── OBJ_3801.png │ ├── OBJ_3A01.png │ ├── OBJ_3E01.png │ ├── OBJ_3F01.png │ ├── OBJ_4901.png │ ├── OBJ_5901.png │ ├── OBJ_6500.png │ ├── OBJ_6700.png │ ├── OBJ_6800.png │ ├── OBJ_6B00.png │ ├── OBJ_6E00.png │ ├── OBJ_9101.png │ ├── OBJ_9601.png │ ├── OBJ_9801.png │ ├── OBJ_9901.png │ ├── OBJ_9B01.png │ ├── OBJ_A401.png │ ├── OBJ_A501.png │ ├── OBJ_A601.png │ ├── OBJ_A701.png │ ├── OBJ_A801.png │ ├── OBJ_A901.png │ ├── OBJ_AC01.png │ ├── OBJ_AF01.png │ ├── OBJ_B001.png │ ├── OBJ_C900.png │ ├── OBJ_CB00.png │ ├── OBJ_CD00.png │ ├── OBJ_CE00.png │ ├── OBJ_CF00.png │ ├── config_bctr.png │ ├── config_bss.png │ ├── leaf-brown-pencil.png │ └── start.png └── UI │ ├── CDMDViewer.Designer.cs │ ├── CDMDViewer.cs │ ├── CDMDViewer.resx │ ├── KCLCollisionTypeSelector.cs │ ├── KCLCollisionTypeSelector.designer.cs │ ├── KCLCollisionTypeSelector.resx │ ├── KclWorking.Designer.cs │ ├── KclWorking.cs │ ├── KclWorking.resx │ ├── MKDSRouteViewer.Designer.cs │ ├── MKDSRouteViewer.cs │ ├── MKDSRouteViewer.resx │ ├── MapViewer │ ├── MKDSAreaRenderGroup.cs │ ├── MKDSCheckPointLineRenderGroup.cs │ ├── MKDSCheckPointPoint1RenderGroup.cs │ ├── MKDSCheckPointPoint2RenderGroup.cs │ ├── MKDSEnemyPointLineRenderGroup.cs │ ├── MKDSItemPointLineRenderGroup.cs │ ├── MKDSMiniGameEnemyPointLineRenderGroup.cs │ ├── MKDSObjectRenderGroup.cs │ ├── MKDSRouteLineRenderGroup.cs │ ├── MapViewer.Designer.cs │ ├── MapViewer.cs │ ├── MapViewer.resx │ ├── PointRenderGroup.cs │ └── RenderGroup.cs │ ├── NKMDViewer.Designer.cs │ ├── NKMDViewer.cs │ ├── NKMDViewer.resx │ ├── NKMDViewer2.Designer.cs │ ├── NKMDViewer2.cs │ ├── NKMDViewer2.resx │ ├── OBJI.Designer.cs │ └── OBJI.resx ├── NDS ├── BMG.cs ├── GPU │ ├── CommandContext.cs │ └── Textures.cs ├── MODS.cs ├── NDS.csproj ├── NDSPlugin.cs ├── NDSProject.cs ├── Nitro │ ├── ARM9.cs │ ├── ASMHack.cs │ ├── CRC16.cs │ ├── CRT0.cs │ ├── NDS.cs │ └── NitroFS.cs ├── NitroSystem │ ├── FND │ │ └── NARC.cs │ ├── FONT │ │ └── NFTR.cs │ ├── G2D │ │ ├── NANR.cs │ │ ├── NCER.cs │ │ ├── NCGR.cs │ │ ├── NCLR.cs │ │ └── NSCR.cs │ ├── G3D │ │ ├── Dictionary.cs │ │ ├── MDL0.cs │ │ ├── NSBCA.cs │ │ ├── NSBMA.cs │ │ ├── NSBMD.cs │ │ ├── NSBTA.cs │ │ ├── NSBTP.cs │ │ ├── NSBTX.cs │ │ ├── NSBVA .cs │ │ ├── SBC.cs │ │ ├── TEX0.cs │ │ └── Util.cs │ └── SND │ │ ├── SBNK.cs │ │ ├── SDAT.cs │ │ ├── SSAR.cs │ │ ├── SSEQ.cs │ │ ├── SSEQDecoder.cs │ │ ├── SSEQEncoder.cs │ │ ├── SSEQEvent.cs │ │ ├── SSEQMidiResult.cs │ │ ├── SSEQTrack.cs │ │ ├── STRM.cs │ │ ├── SWAR.cs │ │ └── SWAV.cs ├── Properties │ └── AssemblyInfo.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── color-swatch.png │ ├── color-swatches.png │ ├── color_swatch1.png │ ├── disc_music.png │ ├── fruit-grape.png │ ├── fruit.png │ ├── guitar.png │ ├── image-sunset.png │ ├── image-sunset16.png │ ├── image.png │ ├── images-stack.png │ ├── jar.png │ ├── leaf.png │ ├── lollypopanim.png │ ├── map.png │ ├── molecule.png │ ├── node.png │ ├── note.png │ ├── note_box.png │ ├── point.png │ ├── script_text.png │ ├── speaker.png │ ├── speaker2.png │ ├── speaker2_box.png │ ├── stack.png │ ├── sunset_vertical.png │ ├── traffic_light_anim.png │ ├── truck_anim.png │ └── water.png ├── SND │ ├── IMAADPCMConst.cs │ ├── IMAADPCMDecoder.cs │ └── IMAADPCMEncoder.cs ├── SPA.cs ├── UI │ ├── BMGViewer.Designer.cs │ ├── BMGViewer.cs │ ├── BMGViewer.resx │ ├── MDL0MaterialEditor.Designer.cs │ ├── MDL0MaterialEditor.cs │ ├── MDL0MaterialEditor.resx │ ├── MDL0Viewer.Designer.cs │ ├── MDL0Viewer.cs │ ├── MDL0Viewer.resx │ ├── NARCViewer.Designer.cs │ ├── NARCViewer.cs │ ├── NARCViewer.resx │ ├── NDSProjectDialog.Designer.cs │ ├── NDSProjectDialog.cs │ ├── NDSProjectDialog.resx │ ├── NDSViewer.Designer.cs │ ├── NDSViewer.cs │ ├── NDSViewer.resx │ ├── NSBMDViewer.cs │ ├── NSBMDViewer.designer.cs │ ├── NSBMDViewer.resx │ ├── NSBTXViewer.Designer.cs │ ├── NSBTXViewer.cs │ ├── NSBTXViewer.resx │ ├── Projects │ │ ├── BannerTabPage.Designer.cs │ │ ├── BannerTabPage.cs │ │ └── BannerTabPage.resx │ ├── TEX0Viewer.Designer.cs │ ├── TEX0Viewer.cs │ ├── TEX0Viewer.resx │ ├── UtilityBinViewer.Designer.cs │ ├── UtilityBinViewer.cs │ └── UtilityBinViewer.resx ├── UtilityBin.cs └── VX.cs ├── README.md ├── RuneFactory ├── Properties │ └── AssemblyInfo.cs ├── RF3 │ └── rf3Archive.cs ├── RF4 │ └── jpn.cs └── RuneFactory.csproj ├── WiiU ├── GPU │ ├── R600Tiling.cs │ └── Textures.cs ├── NintendoWare │ ├── FONT │ │ └── FFNT.cs │ ├── LYT2 │ │ ├── FLAN.cs │ │ ├── FLIM.cs │ │ └── FLYT.cs │ └── SND │ │ ├── FSAR.cs │ │ └── FWAV.cs ├── Properties │ └── AssemblyInfo.cs ├── Resource.Designer.cs ├── Resource.resx ├── Resources │ ├── image.png │ └── zone.png ├── UI │ ├── FLIMViewer.Designer.cs │ ├── FLIMViewer.cs │ ├── FLIMViewer.resx │ ├── FLYTViewer.Designer.cs │ ├── FLYTViewer.cs │ └── FLYTViewer.resx └── WiiU.csproj └── packages ├── Microsoft.WindowsAPICodePack-Core.1.1.0.0 ├── .signature.p7s ├── Microsoft.WindowsAPICodePack-Core.1.1.0.0.nupkg └── lib │ ├── Microsoft.WindowsAPICodePack.XML │ └── Microsoft.WindowsAPICodePack.dll └── Microsoft.WindowsAPICodePack-Shell.1.1.0.0 ├── .signature.p7s ├── Microsoft.WindowsAPICodePack-Shell.1.1.0.0.nupkg └── lib ├── Microsoft.WindowsAPICodePack.Shell.dll ├── Microsoft.WindowsAPICodePack.Shell.xml ├── Microsoft.WindowsAPICodePack.ShellExtensions.XML └── Microsoft.WindowsAPICodePack.ShellExtensions.dll /.gitignore: -------------------------------------------------------------------------------- 1 | Thumbs.db 2 | .vs 3 | *.vsp 4 | *.psess 5 | *.obj 6 | *.exe 7 | *.pdb 8 | *.user 9 | *.aps 10 | *.pch 11 | *.vspscc 12 | *_i.c 13 | *_p.c 14 | *.ncb 15 | *.suo 16 | *.sln.docstates 17 | *.tlb 18 | *.tlh 19 | *.bak 20 | *.cache 21 | *.ilk 22 | *.log 23 | [Bb]in 24 | [Dd]ebug*/ 25 | *.lib 26 | *.sbr 27 | obj/ 28 | [Rr]elease*/ 29 | _ReSharper*/ 30 | [Tt]est[Rr]esult* 31 | *.vssscc 32 | $tf*/ 33 | TestPlugin*/ 34 | CTGP-7/ -------------------------------------------------------------------------------- /.tfignore: -------------------------------------------------------------------------------- 1 | \.git -------------------------------------------------------------------------------- /3DS/Bnr.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Text; 3 | using LibEveryFileExplorer.Files; 4 | using System.Drawing; 5 | using System.Windows.Forms; 6 | using LibEveryFileExplorer.IO; 7 | using System.IO; 8 | using System.Runtime.InteropServices; 9 | 10 | namespace _3DS 11 | { 12 | 13 | // public override string GetCategory() 14 | // { 15 | // return "3DS"; 16 | // } 17 | 18 | // public override string GetFileDescription() 19 | // { 20 | // return "CTR Banners (Bnr)"; 21 | // } 22 | 23 | // public override string GetFileFilter() 24 | // { 25 | // return "CTR Banners (*.bnr)|*.bnr"; 26 | // } 27 | // } 28 | // } 29 | } 30 | -------------------------------------------------------------------------------- /3DS/Extensions.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.IO; 6 | using System.Drawing; 7 | using LibEveryFileExplorer.IO; 8 | 9 | namespace _3DS 10 | { 11 | public static class Extensions 12 | { 13 | public static Color ReadColor8(this EndianBinaryReader er) 14 | { 15 | int r = er.ReadByte(); 16 | int g = er.ReadByte(); 17 | int b = er.ReadByte(); 18 | int a = er.ReadByte(); 19 | return Color.FromArgb(a, r, g, b); 20 | } 21 | 22 | public static Color ReadColor4Singles(this EndianBinaryReader er) 23 | { 24 | float R = er.ReadSingle(); 25 | float G = er.ReadSingle(); 26 | float B = er.ReadSingle(); 27 | float A = er.ReadSingle(); 28 | 29 | int r = (int)(0.5f + (R * 255f)); 30 | int g = (int)(0.5f + (G * 255f)); 31 | int b = (int)(0.5f + (B * 255f)); 32 | int a = (int)(0.5f + (A * 255f)); 33 | 34 | return Color.FromArgb(a, r, g, b); 35 | } 36 | 37 | public static void WriteColor8(this EndianBinaryWriter er, Color Value) 38 | { 39 | er.Write((byte)Value.R); 40 | er.Write((byte)Value.G); 41 | er.Write((byte)Value.B); 42 | er.Write((byte)Value.A); 43 | } 44 | 45 | public static void WriteColor4Singles(this EndianBinaryWriter er, Color Value) 46 | { 47 | er.Write((float)(Value.R / 255f)); 48 | er.Write((float)(Value.G / 255f)); 49 | er.Write((float)(Value.B / 255f)); 50 | er.Write((float)(Value.A / 255f)); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /3DS/GPU/PICA/FragmentLightSource.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | 7 | namespace _3DS.GPU.PICA 8 | { 9 | public class FragmentLightSource 10 | { 11 | public Vector4 Ambient = new Vector4(0, 0, 0, 1); 12 | public Vector4 Diffuse = new Vector4(1, 1, 1, 1);//default white for light0, black for others 13 | public Vector4 Specular0 = new Vector4(1, 1, 1, 1);//default white for light0, black for others 14 | public Vector4 Specular1 = new Vector4(1, 1, 1, 1);//default white for light0, black for others 15 | public Vector4 Position = new Vector4(0, 0, 1, 0); 16 | public Vector3 SpotDirection = new Vector3(0, 0, -1); 17 | 18 | public Boolean Shadowed = false; 19 | public Boolean SpotEnabled = false; 20 | public Boolean DistanceAttenuationEnabled = false; 21 | public Boolean TwoSideDiffuse = false; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /3DS/Moflex.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | /*namespace _3DS 9 | { 10 | public class L2 : FileFormat 11 | { 12 | public class L2Identifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Movies; 17 | 18 | } 19 | 20 | public override string GetFileDescription() 21 | { 22 | return "3DS Mobiclip Video Files (moflex)"; 23 | } 24 | 25 | public override string GetFileFilter() 26 | { 27 | return "3DS Mobiclip Video Files (*.moflex)|*.moflex"; 28 | } 29 | 30 | public override Bitmap GetIcon() 31 | { 32 | return null; 33 | } 34 | 35 | public override FormatMatch IsFormat(EFEFile File) 36 | { 37 | if (File.Name.ToLower().EndsWith(".moflex")) return FormatMatch.Extension; 38 | return FormatMatch.No; 39 | } 40 | 41 | } 42 | } 43 | }*/ 44 | 45 | -------------------------------------------------------------------------------- /3DS/N3DSPlugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer; 6 | using LibEveryFileExplorer.Script; 7 | using _3DS.NintendoWare.GFX; 8 | using System.IO; 9 | using CommonFiles; 10 | 11 | namespace _3DS 12 | { 13 | public class N3DSPlugin : EFEPlugin 14 | { 15 | public override void OnLoad() 16 | { 17 | EFEScript.RegisterCommand("N3DS.NW4C.GFX.ToOBJ", (Action)N3DS_NW4C_GFX_ToOBJ); 18 | } 19 | 20 | public static void N3DS_NW4C_GFX_ToOBJ(String BCMDLPath, int ModelIdx, String OBJPath) 21 | { 22 | CGFX c = new CGFX(File.ReadAllBytes(BCMDLPath)); 23 | if (c.Data.Models == null || c.Data.Models.Length <= ModelIdx) throw new Exception("Model does not exist in the specified CGFX file!"); 24 | CMDL Model = c.Data.Models[ModelIdx]; 25 | OBJ o = Model.ToOBJ(); 26 | o.MTLPath = Path.GetFileNameWithoutExtension(OBJPath) + ".mtl"; 27 | MTL m = Model.ToMTL(Path.GetFileNameWithoutExtension(OBJPath) + "_Tex"); 28 | byte[] d = o.Write(); 29 | byte[] d2 = m.Write(); 30 | File.Create(OBJPath).Close(); 31 | File.WriteAllBytes(OBJPath, d); 32 | File.Create(Path.ChangeExtension(OBJPath, "mtl")).Close(); 33 | File.WriteAllBytes(Path.ChangeExtension(OBJPath, "mtl"), d2); 34 | Directory.CreateDirectory(Path.GetDirectoryName(OBJPath) + "\\" + Path.GetFileNameWithoutExtension(OBJPath) + "_Tex"); 35 | foreach (var v in c.Data.Textures) 36 | { 37 | if (!(v is ImageTextureCtr)) continue; 38 | ((ImageTextureCtr)v).GetBitmap().Save(Path.GetDirectoryName(OBJPath) + "\\" + Path.GetFileNameWithoutExtension(OBJPath) + "_Tex\\" + v.Name + ".png"); 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /3DS/NintendoWare/GFX/BoundingVolume.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.IO; 6 | using LibEveryFileExplorer.Collections; 7 | using LibEveryFileExplorer.IO; 8 | 9 | namespace _3DS.NintendoWare.GFX 10 | { 11 | public class BoundingVolume 12 | { 13 | public BoundingVolume() { } 14 | public BoundingVolume(EndianBinaryReader er) 15 | { 16 | Type = er.ReadUInt32(); 17 | } 18 | public virtual void Write(EndianBinaryWriter er) 19 | { 20 | er.Write(Type); 21 | } 22 | public UInt32 Type; 23 | public static BoundingVolume FromStream(EndianBinaryReader er) 24 | { 25 | uint type = er.ReadUInt32(); 26 | er.BaseStream.Position -= 4; 27 | switch (type) 28 | { 29 | case 0x80000000: 30 | return new OrientedBoundingBox(er); 31 | } 32 | return new BoundingVolume(er); 33 | } 34 | } 35 | 36 | public class AxisAlignedBoundingBox : BoundingVolume 37 | { 38 | public AxisAlignedBoundingBox(EndianBinaryReader er) 39 | : base(er) 40 | { 41 | CenterPosition = er.ReadVector3(); 42 | Size = er.ReadVector3(); 43 | } 44 | public override void Write(EndianBinaryWriter er) 45 | { 46 | base.Write(er); 47 | er.WriteVector3(CenterPosition); 48 | er.WriteVector3(Size); 49 | } 50 | public Vector3 CenterPosition; 51 | public Vector3 Size; 52 | } 53 | 54 | public class OrientedBoundingBox : BoundingVolume 55 | { 56 | public OrientedBoundingBox() 57 | : base() 58 | { 59 | Type = 0x80000000; 60 | //All to be set by the user 61 | CenterPosition = new Vector3(0, 0, 0); 62 | OrientationMatrix = new float[] { 1, 0, 0, 0, 1, 0, 0, 0, 1 }; 63 | Size = new Vector3(1, 1, 1); 64 | } 65 | public OrientedBoundingBox(EndianBinaryReader er) 66 | : base(er) 67 | { 68 | CenterPosition = er.ReadVector3(); 69 | OrientationMatrix = er.ReadSingles(3 * 3); 70 | Size = er.ReadVector3(); 71 | } 72 | public override void Write(EndianBinaryWriter er) 73 | { 74 | base.Write(er); 75 | er.WriteVector3(CenterPosition); 76 | er.Write(OrientationMatrix, 0, 3 * 3); 77 | er.WriteVector3(Size); 78 | } 79 | public Vector3 CenterPosition; 80 | public Single[] OrientationMatrix;//3x3 81 | public Vector3 Size; 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /3DS/NintendoWare/LYT1/CLAN.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace _3DS.NintendoWare.LYT1 9 | { 10 | public class CLAN : FileFormat 11 | { 12 | public class CLANIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "CTR Layout Animation (CLAN)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "CTR Layout Animation (*.bclan)|*.bclan"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return null; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'C' && File.Data[1] == 'L' && File.Data[2] == 'A' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /3DS/NintendoWare/LYT1/bnd1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.IO; 6 | using LibEveryFileExplorer.IO; 7 | 8 | namespace _3DS.NintendoWare.LYT1 9 | { 10 | public class bnd1 : pan1 11 | { 12 | public bnd1(EndianBinaryReader er) 13 | : base(er) 14 | { 15 | 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /3DS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Nintendo 3DS Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("52cc8500-db45-4569-85c7-8e7a382adbe9")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /3DS/Resources/edit-language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/edit-language.png -------------------------------------------------------------------------------- /3DS/Resources/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/edit.png -------------------------------------------------------------------------------- /3DS/Resources/film.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/film.png -------------------------------------------------------------------------------- /3DS/Resources/films.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/films.png -------------------------------------------------------------------------------- /3DS/Resources/image-sunset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/image-sunset.png -------------------------------------------------------------------------------- /3DS/Resources/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/image.png -------------------------------------------------------------------------------- /3DS/Resources/image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/image16.png -------------------------------------------------------------------------------- /3DS/Resources/images-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/images-stack.png -------------------------------------------------------------------------------- /3DS/Resources/jar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/jar.png -------------------------------------------------------------------------------- /3DS/Resources/leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/leaf.png -------------------------------------------------------------------------------- /3DS/Resources/light-bulb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/light-bulb.png -------------------------------------------------------------------------------- /3DS/Resources/lighthouse-shine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/lighthouse-shine.png -------------------------------------------------------------------------------- /3DS/Resources/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/plus.png -------------------------------------------------------------------------------- /3DS/Resources/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/point.png -------------------------------------------------------------------------------- /3DS/Resources/preview_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/preview_background.png -------------------------------------------------------------------------------- /3DS/Resources/slide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/slide.png -------------------------------------------------------------------------------- /3DS/Resources/t-shirt-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/t-shirt-gray.png -------------------------------------------------------------------------------- /3DS/Resources/t-shirt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/t-shirt.png -------------------------------------------------------------------------------- /3DS/Resources/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/table.png -------------------------------------------------------------------------------- /3DS/Resources/tables-stacks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/tables-stacks.png -------------------------------------------------------------------------------- /3DS/Resources/weather-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/weather-cloud.png -------------------------------------------------------------------------------- /3DS/Resources/weather-clouds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/weather-clouds.png -------------------------------------------------------------------------------- /3DS/Resources/zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/zone.png -------------------------------------------------------------------------------- /3DS/Resources/zone16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/zone16.png -------------------------------------------------------------------------------- /3DS/Resources/zones-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/3DS/Resources/zones-stack.png -------------------------------------------------------------------------------- /3DS/SARCEFESFSFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files.SimpleFileSystem; 6 | 7 | namespace _3DS 8 | { 9 | public class SARCEFESFSFile : EFESFSFile 10 | { 11 | public SARCEFESFSFile(SFSFile File) 12 | : base(File) { } 13 | 14 | public override byte[] FindFileRelative(string Path) 15 | { 16 | Path = Path.Replace("\\", "/"); 17 | if (Path.TrimStart('/').StartsWith("../")) return null; 18 | return File.Parent.GetFileByID((int)SARC.GetHashFromName(Path, 0x65)).Data; 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /3DS/ThemeIconFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using System.IO; 8 | using _3DS.UI; 9 | 10 | namespace _3DS 11 | { 12 | public class ThemeIconFile : FileFormat, IViewable 13 | { 14 | public ThemeIconFile(byte[] Data) 15 | { 16 | icon = Data; 17 | width = 48; 18 | height = 48; 19 | } 20 | 21 | int width; 22 | int height; 23 | byte[] icon; 24 | 25 | public Bitmap getIconTexture() 26 | { 27 | return GPU.Textures.ToBitmap(icon, width, height, GPU.Textures.ImageFormat.RGB565, true); 28 | } 29 | 30 | public System.Windows.Forms.Form GetDialog() 31 | { 32 | return new ThemeIconViewer(this); 33 | } 34 | 35 | 36 | public class ThemeIconIdentifier : FileFormatIdentifier 37 | { 38 | public override string GetCategory() 39 | { 40 | return "3DS Themes"; 41 | } 42 | 43 | public override string GetFileDescription() 44 | { 45 | return "3DS System Menu Theme Icon"; 46 | } 47 | 48 | public override string GetFileFilter() 49 | { 50 | return "3DS System Menu Icon (*.icn)|*.icn"; 51 | } 52 | 53 | public override Bitmap GetIcon() 54 | { 55 | return null; 56 | } 57 | 58 | public override FormatMatch IsFormat(EFEFile File) 59 | { 60 | if (File.Name.EndsWith(".icn")) 61 | return FormatMatch.Extension; 62 | else 63 | return FormatMatch.No; 64 | } 65 | 66 | } 67 | 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /3DS/UI/BCLIMGenDialog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace _3DS.UI 11 | { 12 | public partial class BCLIMGenDialog : Form 13 | { 14 | public BCLIMGenDialog() 15 | { 16 | InitializeComponent(); 17 | comboBox1.SelectedIndex = 9; 18 | } 19 | public int index { get; private set; } 20 | 21 | private void button1_Click(object sender, EventArgs e) 22 | { 23 | index = comboBox1.SelectedIndex; 24 | } 25 | } 26 | } -------------------------------------------------------------------------------- /3DS/UI/CFNTViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using _3DS.NintendoWare.FONT; 10 | using LibEveryFileExplorer.GFX; 11 | 12 | namespace _3DS.UI 13 | { 14 | public partial class CFNTViewer : Form 15 | { 16 | CFNT Font; 17 | BitmapFont f; 18 | public CFNTViewer(CFNT Font) 19 | { 20 | this.Font = Font; 21 | f = Font.GetBitmapFont(); 22 | InitializeComponent(); 23 | pictureBox1.Image = f.PrintToBitmap(textBox1.Text, new BitmapFont.FontRenderSettings()); 24 | } 25 | 26 | private void textBox1_TextChanged(object sender, EventArgs e) 27 | { 28 | pictureBox1.Image = f.PrintToBitmap(textBox1.Text, new BitmapFont.FontRenderSettings()); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /3DS/UI/CGFXGenDialog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace _3DS.UI 11 | { 12 | public partial class CGFXGenDialog : Form 13 | { 14 | public String ModelName; 15 | public CGFXGenDialog() 16 | { 17 | InitializeComponent(); 18 | ModelName = textBox1.Text; 19 | } 20 | 21 | private void textBox1_TextChanged(object sender, EventArgs e) 22 | { 23 | ModelName = textBox1.Text; 24 | if (textBox1.Text.Length == 0) button1.Enabled = false; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /3DS/UI/CLIMViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace _3DS.UI 2 | { 3 | partial class CLIMViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CLIMViewer)); 32 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 33 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 34 | this.SuspendLayout(); 35 | // 36 | // pictureBox1 37 | // 38 | this.pictureBox1.BackColor = System.Drawing.Color.White; 39 | this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage"))); 40 | this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.pictureBox1.Location = new System.Drawing.Point(0, 0); 42 | this.pictureBox1.Name = "pictureBox1"; 43 | this.pictureBox1.Size = new System.Drawing.Size(565, 386); 44 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; 45 | this.pictureBox1.TabIndex = 0; 46 | this.pictureBox1.TabStop = false; 47 | // 48 | // CLIMViewer 49 | // 50 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 51 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 52 | this.ClientSize = new System.Drawing.Size(565, 386); 53 | this.Controls.Add(this.pictureBox1); 54 | this.Name = "CLIMViewer"; 55 | this.Text = "CLIMViewer"; 56 | this.Load += new System.EventHandler(this.CLIMViewer_Load); 57 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 58 | this.ResumeLayout(false); 59 | 60 | } 61 | 62 | #endregion 63 | 64 | private System.Windows.Forms.PictureBox pictureBox1; 65 | } 66 | } -------------------------------------------------------------------------------- /3DS/UI/CLIMViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using _3DS.NintendoWare.LYT1; 10 | 11 | namespace _3DS.UI 12 | { 13 | public partial class CLIMViewer : Form 14 | { 15 | CLIM Image; 16 | public CLIMViewer(CLIM Image) 17 | { 18 | this.Image = Image; 19 | InitializeComponent(); 20 | } 21 | 22 | private void CLIMViewer_Load(object sender, EventArgs e) 23 | { 24 | pictureBox1.Image = Image.ToBitmap(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /3DS/UI/CSEQViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using _3DS.NintendoWare.SND; 10 | 11 | namespace _3DS.UI 12 | { 13 | public partial class CSEQViewer : Form 14 | { 15 | CSEQ Sequence; 16 | 17 | public CSEQViewer(CSEQ Sequence) 18 | { 19 | this.Sequence = Sequence; 20 | InitializeComponent(); 21 | } 22 | 23 | public CSEQViewer() 24 | { 25 | InitializeComponent(); 26 | } 27 | 28 | private void toolStripButton1_Click(object sender, EventArgs e) 29 | { 30 | 31 | } 32 | 33 | private void toolStripButton2_Click(object sender, EventArgs e) 34 | { 35 | 36 | } 37 | 38 | private void toolStripButton3_Click(object sender, EventArgs e) 39 | { 40 | 41 | } 42 | 43 | private void toolStripButton4_Click(object sender, EventArgs e) 44 | { 45 | 46 | } 47 | 48 | private void toolStripButton5_Click(object sender, EventArgs e) 49 | { 50 | 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /3DS/UI/CSTMViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using _3DS.NintendoWare.SND; 10 | 11 | namespace _3DS.UI 12 | { 13 | public partial class CSTMViewer : Form 14 | { 15 | CSTM Stream; 16 | 17 | public CSTMViewer(CSTM Stream) 18 | { 19 | this.Stream = Stream; 20 | InitializeComponent(); 21 | } 22 | 23 | private void CSTMViewer_FormClosed(object sender, FormClosedEventArgs e) 24 | { 25 | wavePlayer1.Stop(); 26 | } 27 | 28 | private void CSTMViewer_Load(object sender, EventArgs e) 29 | { 30 | //Not in the constructor, because it will cause problems when creating a bcstm 31 | wavePlayer1.SetWavFile(Stream.ToWave()); 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /3DS/UI/SAHTViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace _3DS.UI 11 | { 12 | public partial class SAHTViewer : Form 13 | { 14 | public SARCHashTable HashTable; 15 | public SAHTViewer(SARCHashTable HashTable) 16 | { 17 | this.HashTable = HashTable; 18 | HashTable.SortEntriesByHash(); 19 | InitializeComponent(); 20 | } 21 | 22 | private void SAHTViewer_Load(object sender, EventArgs e) 23 | { 24 | UpdateEntries(); 25 | } 26 | 27 | private void listView1_SelectedIndexChanged(object sender, EventArgs e) 28 | { 29 | if (listView1.SelectedIndices.Count != 0) toolStripButton2.Enabled = true; 30 | else toolStripButton2.Enabled = false; 31 | } 32 | 33 | private void UpdateEntries() 34 | { 35 | listView1.BeginUpdate(); 36 | listView1.Items.Clear(); 37 | foreach (var v in HashTable.Entries) 38 | { 39 | listView1.Items.Add(new ListViewItem(new string[] { v.Name, "0x" + v.Hash.ToString("X8") })); 40 | } 41 | listView1.EndUpdate(); 42 | } 43 | 44 | private void toolStripButton1_Click(object sender, EventArgs e) 45 | { 46 | String name = Microsoft.VisualBasic.Interaction.InputBox("Please give the name or path of the file:", "New Entry"); 47 | if (name == null || name.Length == 0) return; 48 | if (HashTable.GetEntryByName(name) != null) 49 | { 50 | MessageBox.Show("This name is already in the table!"); 51 | return; 52 | } 53 | HashTable.Entries.Add(new SARCHashTable.SAHTEntry(name)); 54 | HashTable.SortEntriesByHash(); 55 | UpdateEntries(); 56 | } 57 | 58 | private void toolStripButton2_Click(object sender, EventArgs e) 59 | { 60 | HashTable.Entries.RemoveAt(listView1.SelectedIndices[0]); 61 | UpdateEntries(); 62 | } 63 | 64 | private void importTableButton_Click(object sender, EventArgs e) 65 | { 66 | if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK 67 | && openFileDialog1.FileName.Length > 0) 68 | { 69 | SARCHashTable newTable = new SARCHashTable(System.IO.File.ReadAllBytes(openFileDialog1.FileName)); 70 | HashTable.Merge(newTable); 71 | UpdateEntries(); 72 | } 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /3DS/UI/ThemeIconViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace _3DS.UI 2 | { 3 | partial class ThemeIconViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 32 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 33 | this.SuspendLayout(); 34 | // 35 | // pictureBox1 36 | // 37 | this.pictureBox1.BackgroundImage = global::_3DS.Resource.preview_background; 38 | this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; 39 | this.pictureBox1.Location = new System.Drawing.Point(0, 0); 40 | this.pictureBox1.Name = "pictureBox1"; 41 | this.pictureBox1.Size = new System.Drawing.Size(241, 129); 42 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; 43 | this.pictureBox1.TabIndex = 0; 44 | this.pictureBox1.TabStop = false; 45 | // 46 | // ThemeIconViewer 47 | // 48 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 49 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 50 | this.ClientSize = new System.Drawing.Size(241, 129); 51 | this.Controls.Add(this.pictureBox1); 52 | this.Name = "ThemeIconViewer"; 53 | this.Text = "ThemeIconViewer"; 54 | this.Load += new System.EventHandler(this.ThemeIconViewer_Load_1); 55 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 56 | this.ResumeLayout(false); 57 | 58 | } 59 | 60 | #endregion 61 | 62 | private System.Windows.Forms.PictureBox pictureBox1; 63 | } 64 | } -------------------------------------------------------------------------------- /3DS/UI/ThemeIconViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace _3DS.UI 11 | { 12 | public partial class ThemeIconViewer : Form 13 | { 14 | ThemeIconFile themeIcon; 15 | public ThemeIconViewer(ThemeIconFile themeIcon) 16 | { 17 | this.themeIcon = themeIcon; 18 | InitializeComponent(); 19 | } 20 | 21 | private void ThemeIconViewer_Load_1(object sender, EventArgs e) 22 | { 23 | pictureBox1.Image = themeIcon.getIconTexture(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /3DS/UI/ThemeViewerNew.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace _3DS.UI 11 | { 12 | public partial class ThemeViewerNew : Form 13 | { 14 | public ThemeViewerNew() 15 | { 16 | InitializeComponent(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /3DS/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /CommonCompressors/LZ10.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Compression; 6 | using System.Runtime.InteropServices; 7 | 8 | namespace CommonCompressors 9 | { 10 | public unsafe class LZ10 : CompressionFormat 11 | { 12 | public override byte[] Decompress(byte[] Data) 13 | { 14 | UInt32 leng = (uint)(Data[1] | (Data[2] << 8) | (Data[3] << 16)); 15 | byte[] Result = new byte[leng]; 16 | int Offs = 4; 17 | int dstoffs = 0; 18 | while (true) 19 | { 20 | byte header = Data[Offs++]; 21 | for (int i = 0; i < 8; i++) 22 | { 23 | if ((header & 0x80) == 0) Result[dstoffs++] = Data[Offs++]; 24 | else 25 | { 26 | byte a = Data[Offs++]; 27 | int offs; 28 | int length; 29 | if ((a >> 4) == 0) 30 | { 31 | byte b = Data[Offs++]; 32 | byte c = Data[Offs++]; 33 | length = (((a & 0xF) << 4) | (b >> 4)) + 0x10; 34 | offs = (((b & 0xF) << 8) | c) + 1; 35 | } 36 | 37 | if (dstoffs >= leng) return Result; 38 | header <<= 1; 39 | } 40 | } 41 | } 42 | } 43 | public class LZ10Identifier : CompressionFormatIdentifier 44 | { 45 | public override string GetCompressionDescription() 46 | { 47 | return "LZ10"; 48 | } 49 | 50 | public override bool IsFormat(byte[] Data) 51 | { 52 | return Data.Length > 4 && Data[0] == 0x10; 53 | } 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /CommonCompressors/LZ11.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Compression; 6 | using System.Runtime.InteropServices; 7 | 8 | namespace CommonCompressors 9 | { 10 | public unsafe class LZ11 : CompressionFormat 11 | { 12 | public override byte[] Decompress(byte[] Data) 13 | { 14 | UInt32 leng = (uint)(Data[1] | (Data[2] << 8) | (Data[3] << 16)); 15 | byte[] Result = new byte[leng]; 16 | int Offs = 4; 17 | int dstoffs = 0; 18 | while (true) 19 | { 20 | byte header = Data[Offs++]; 21 | for (int i = 0; i < 8; i++) 22 | { 23 | if ((header & 0x80) == 0) Result[dstoffs++] = Data[Offs++]; 24 | else 25 | { 26 | byte a = Data[Offs++]; 27 | int offs; 28 | int length; 29 | if ((a >> 4) == 0) 30 | { 31 | byte b = Data[Offs++]; 32 | byte c = Data[Offs++]; 33 | length = (((a & 0xF) << 4) | (b >> 4)) + 0x11; 34 | offs = (((b & 0xF) << 8) | c) + 1; 35 | } 36 | else if ((a >> 4) == 1) 37 | { 38 | byte b = Data[Offs++]; 39 | byte c = Data[Offs++]; 40 | byte d = Data[Offs++]; 41 | length = (((a & 0xF) << 12) | (b << 4) | (c >> 4)) + 0x111; 42 | offs = (((c & 0xF) << 8) | d) + 1; 43 | } 44 | else 45 | { 46 | byte b = Data[Offs++]; 47 | offs = (((a & 0xF) << 8) | b) + 1; 48 | length = (a >> 4) + 1; 49 | } 50 | for (int j = 0; j < length; j++) 51 | { 52 | Result[dstoffs] = Result[dstoffs - offs]; 53 | dstoffs++; 54 | } 55 | } 56 | if (dstoffs >= leng) return Result; 57 | header <<= 1; 58 | } 59 | } 60 | } 61 | 62 | public class LZ11Identifier : CompressionFormatIdentifier 63 | { 64 | public override string GetCompressionDescription() 65 | { 66 | return "LZ11"; 67 | } 68 | 69 | public override bool IsFormat(byte[] Data) 70 | { 71 | return Data.Length > 4 && Data[0] == 0x11; 72 | } 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /CommonCompressors/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Common Compressors Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("287caaec-e539-44ce-8e11-bffcf4b45471")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /CommonFiles/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Common Files Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c993dbcd-fe83-4fdb-850d-710640b3fdd0")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /CommonFiles/Resources/control-pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/CommonFiles/Resources/control-pause.png -------------------------------------------------------------------------------- /CommonFiles/Resources/control.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/CommonFiles/Resources/control.png -------------------------------------------------------------------------------- /CommonFiles/Resources/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/CommonFiles/Resources/image.png -------------------------------------------------------------------------------- /CommonFiles/Resources/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/CommonFiles/Resources/plus.png -------------------------------------------------------------------------------- /EveryFileExplorer/NAudio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/EveryFileExplorer/NAudio.dll -------------------------------------------------------------------------------- /EveryFileExplorer/Plugins/Plugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Reflection; 6 | using LibEveryFileExplorer.Files; 7 | using LibEveryFileExplorer.Compression; 8 | using LibEveryFileExplorer; 9 | 10 | namespace EveryFileExplorer.Plugins 11 | { 12 | public class Plugin 13 | { 14 | public EFEPlugin Initializer; 15 | 16 | public String Name; 17 | public String Description; 18 | public String Version; 19 | public Type[] CompressionTypes; 20 | public Type[] FileFormatTypes; 21 | public Type[] ProjectTypes; 22 | 23 | public Plugin(Assembly Assembly) 24 | { 25 | Name = Assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false).OfType().FirstOrDefault().Title; 26 | Description = Assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false).OfType().FirstOrDefault().Description; 27 | try 28 | { 29 | Version = Assembly.GetCustomAttributes(typeof(AssemblyVersionAttribute), false).OfType().FirstOrDefault().Version; 30 | } 31 | catch 32 | { 33 | Version = null; 34 | } 35 | Type[] tt = Assembly.GetExportedTypes(); 36 | List fe = new List(); 37 | List ce = new List(); 38 | List pe = new List(); 39 | foreach (var t in tt) 40 | { 41 | if (!t.IsClass) continue; 42 | if (t.IsSubclassOf(typeof(EFEPlugin))) 43 | { 44 | Initializer = (EFEPlugin)t.InvokeMember(null, BindingFlags.CreateInstance, null, null, null); 45 | continue; 46 | } 47 | var v = t.GetInterfaces(); 48 | if (v.Length != 0 && t.GetInterfaces()[0].Name == "FileFormatBase") fe.Add(t); 49 | else if (v.Length != 0 && t.GetInterfaces()[0].Name == "CompressionFormatBase") ce.Add(t); 50 | else if (v.Length != 0 && t.GetInterfaces()[0].Name == "ProjectBase") pe.Add(t); 51 | } 52 | FileFormatTypes = fe.ToArray(); 53 | CompressionTypes = ce.ToArray(); 54 | ProjectTypes = pe.ToArray(); 55 | } 56 | 57 | public static bool IsPlugin(Assembly Assembly) 58 | { 59 | Type[] tt = Assembly.GetExportedTypes(); 60 | foreach (var t in tt) 61 | { 62 | if (!t.IsClass) continue; 63 | var v = t.GetInterfaces(); 64 | if (v.Length != 0 && (t.GetInterfaces()[0].Name == "FileFormatBase" || t.GetInterfaces()[0].Name == "CompressionFormatBase" || t.GetInterfaces()[0].Name == "ProjectBase")) return true; 65 | } 66 | return false; 67 | } 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /EveryFileExplorer/Plugins/PluginManager.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.IO; 6 | using System.Windows.Forms; 7 | using System.Reflection; 8 | 9 | namespace EveryFileExplorer.Plugins 10 | { 11 | public class PluginManager 12 | { 13 | public Plugin[] Plugins { get; private set; } 14 | public PluginManager() 15 | { 16 | string[] d = Directory.GetFiles(Path.GetDirectoryName(Application.ExecutablePath) + "\\Plugins\\", "*.dll", SearchOption.TopDirectoryOnly); 17 | List p = new List(); 18 | foreach (var s in d) 19 | { 20 | try 21 | { 22 | AssemblyName.GetAssemblyName(s); 23 | } 24 | catch (BadImageFormatException) 25 | { 26 | continue;//This is not a .net assembly 27 | } 28 | Assembly ass = null; 29 | try 30 | { 31 | ass = Assembly.LoadFile(s); 32 | } 33 | catch (NotSupportedException e) 34 | { 35 | MessageBox.Show("Unblock " + AssemblyName.GetAssemblyName(s) + " from external sources!"); 36 | } 37 | if (Plugin.IsPlugin(ass)) p.Add(new Plugin(ass)); 38 | } 39 | Plugins = p.ToArray(); 40 | foreach (var v in Plugins) 41 | { 42 | if (v.Initializer != null) v.Initializer.OnLoad(); 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /EveryFileExplorer/Propeller_Box_Artwork_-_Super_Mario_3D_World.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/EveryFileExplorer/Propeller_Box_Artwork_-_Super_Mario_3D_World.ico -------------------------------------------------------------------------------- /EveryFileExplorer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Every File Explorer")] 9 | [assembly: AssemblyDescription("Takes hacking to a higher level!")] 10 | [assembly: AssemblyConfiguration("Devbuild")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("33556173-9816-4c7a-960f-b1fffa0c01f6")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /EveryFileExplorer/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Este código fue generado por una herramienta. 4 | // Versión de runtime:4.0.30319.42000 5 | // 6 | // Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si 7 | // se vuelve a generar el código. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace EveryFileExplorer.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /EveryFileExplorer/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /EveryFileExplorer/Resources/document.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/EveryFileExplorer/Resources/document.png -------------------------------------------------------------------------------- /EveryFileExplorer/Resources/folder-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/EveryFileExplorer/Resources/folder-open.png -------------------------------------------------------------------------------- /EveryFileExplorer/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /GCNWii/BCK.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace GCNWii 7 | { 8 | public class Ank1Header 9 | { 10 | public char[] tag; //'ANK1' 11 | public UInt32 sizeOfSection; 12 | 13 | /* 14 | 0 - play once 15 | 2 - loop 16 | */ 17 | public byte loopFlags; 18 | 19 | public byte angleMultiplier; //all angles have to multiplied by pow(2, angleMultiplyer) 20 | 21 | public UInt16 animationLength; //in time units 22 | 23 | public UInt16 numJoints; //that many animated joints at offsetToJoints 24 | public UInt16 scaleCount; //that many floats at offsetToScales 25 | public UInt16 rotCount; //that many s16s at offsetToRots 26 | public UInt16 transCount; //that many floats at offsetToTrans 27 | 28 | public UInt32 offsetToJoints; 29 | public UInt32 offsetToScales; 30 | public UInt32 offsetToRots; 31 | public UInt32 offsetToTrans; 32 | } 33 | 34 | 35 | //TODO: the following two structs have really silly names, rename them 36 | public class AnimIndex 37 | { 38 | public UInt16 count; 39 | public UInt16 index; 40 | public UInt16 zero; //always 0?? -> no (biawatermill01.bck) TODO: find out what it means 41 | } 42 | 43 | public class AnimComponent 44 | { 45 | public AnimIndex s = new AnimIndex(); //scale 46 | public AnimIndex r = new AnimIndex(); //rotation 47 | public AnimIndex t = new AnimIndex(); //translation 48 | } 49 | 50 | public class AnimatedJoint 51 | { 52 | /* 53 | if count > 1, count*3 floats/shorts stored at index 54 | (time, value, unk [interpolation info, e.g. tangent??])? 55 | 56 | for shorts, time is a "real" short, no fixedpoint 57 | */ 58 | public AnimComponent x = new AnimComponent(); 59 | public AnimComponent y = new AnimComponent(); 60 | public AnimComponent z = new AnimComponent(); 61 | } 62 | } -------------------------------------------------------------------------------- /GCNWii/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Nintendo GC and Wii Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("fa8f2333-7020-4c96-842f-90a2af81dad4")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /GCNWii/RLAN.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace GCNWii.JSystem 9 | { 10 | public class RLAN:FileFormat 11 | { 12 | public class RLANIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "JSystem Resource Layout Animation (RLAN)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "JSystem Resource Layout Animation (*.brlan)|*.brlan"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return null; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'R' && File.Data[1] == 'L' && File.Data[2] == 'A' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /GCNWii/Resources/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/GCNWii/Resources/image.png -------------------------------------------------------------------------------- /GCNWii/Resources/zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/GCNWii/Resources/zone.png -------------------------------------------------------------------------------- /GCNWii/UI/BTIViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GCNWii.UI 2 | { 3 | partial class BTIViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BTIViewer)); 32 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 33 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 34 | this.SuspendLayout(); 35 | // 36 | // pictureBox1 37 | // 38 | this.pictureBox1.BackColor = System.Drawing.Color.White; 39 | this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage"))); 40 | this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.pictureBox1.Location = new System.Drawing.Point(0, 0); 42 | this.pictureBox1.Name = "pictureBox1"; 43 | this.pictureBox1.Size = new System.Drawing.Size(565, 386); 44 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; 45 | this.pictureBox1.TabIndex = 0; 46 | this.pictureBox1.TabStop = false; 47 | // 48 | // CLIMViewer 49 | // 50 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 51 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 52 | this.ClientSize = new System.Drawing.Size(565, 386); 53 | this.Controls.Add(this.pictureBox1); 54 | this.Name = "CLIMViewer"; 55 | this.Text = "CLIMViewer"; 56 | this.Load += new System.EventHandler(this.CLIMViewer_Load); 57 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 58 | this.ResumeLayout(false); 59 | 60 | } 61 | 62 | #endregion 63 | 64 | private System.Windows.Forms.PictureBox pictureBox1; 65 | } 66 | } -------------------------------------------------------------------------------- /GCNWii/UI/BTIViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using GCNWii.JSystem; 10 | 11 | namespace GCNWii.UI 12 | { 13 | public partial class BTIViewer : Form 14 | { 15 | BTI Image; 16 | public BTIViewer(BTI Image) 17 | { 18 | this.Image = Image; 19 | InitializeComponent(); 20 | } 21 | 22 | private void CLIMViewer_Load(object sender, EventArgs e) 23 | { 24 | pictureBox1.Image = Image.ToBitmap(); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /GCNWii/UI/TPLViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace GCNWii.UI 2 | { 3 | partial class TPLViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(BTIViewer)); 32 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 33 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 34 | this.SuspendLayout(); 35 | // 36 | // pictureBox1 37 | // 38 | this.pictureBox1.BackColor = System.Drawing.Color.White; 39 | this.pictureBox1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("pictureBox1.BackgroundImage"))); 40 | this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; 41 | this.pictureBox1.Location = new System.Drawing.Point(0, 0); 42 | this.pictureBox1.Name = "pictureBox1"; 43 | this.pictureBox1.Size = new System.Drawing.Size(565, 386); 44 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; 45 | this.pictureBox1.TabIndex = 0; 46 | this.pictureBox1.TabStop = false; 47 | // 48 | // CLIMViewer 49 | // 50 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 51 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 52 | this.ClientSize = new System.Drawing.Size(565, 386); 53 | this.Controls.Add(this.pictureBox1); 54 | this.Name = "CLIMViewer"; 55 | this.Text = "CLIMViewer"; 56 | this.Load += new System.EventHandler(this.CLIMViewer_Load); 57 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 58 | this.ResumeLayout(false); 59 | 60 | } 61 | 62 | #endregion 63 | 64 | private System.Windows.Forms.PictureBox pictureBox1; 65 | } 66 | } -------------------------------------------------------------------------------- /GCNWii/UI/TPLViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace GCNWii.UI 11 | { 12 | public partial class TPLViewer : Form 13 | { 14 | TPL Image; 15 | public TPLViewer(TPL Image) 16 | { 17 | this.Image = Image; 18 | InitializeComponent(); 19 | } 20 | 21 | private void CLIMViewer_Load(object sender, EventArgs e) 22 | { 23 | pictureBox1.Image = Image.Textures[0].ToBitmap(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /LegoPirates/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Lego Pirates of the Carribean Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("58dd297a-249a-47c8-8e66-266a1615799f")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/3D/Polygon.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.Drawing; 7 | 8 | namespace LibEveryFileExplorer._3D 9 | { 10 | public class Polygon 11 | { 12 | public PolygonType PolyType; 13 | public Vector3[] Normals; 14 | public Vector2[] TexCoords; 15 | public Vector2[] TexCoords2; 16 | public Vector2[] TexCoords3; 17 | public Vector3[] Vertex; 18 | public Color[] Colors; 19 | public Polygon() { } 20 | public Polygon(PolygonType PolyType, Vector3[] Vertex, Vector3[] Normals, Vector2[] TexCoords, Color[] Colors = null) 21 | { 22 | this.PolyType = PolyType; 23 | this.Normals = Normals; 24 | this.TexCoords = TexCoords; 25 | this.Vertex = Vertex; 26 | this.Colors = Colors; 27 | } 28 | } 29 | 30 | public enum PolygonType 31 | { 32 | Triangle, 33 | Quad, 34 | TriangleStrip, 35 | QuadStrip 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/3D/Triangle.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | 7 | namespace LibEveryFileExplorer._3D 8 | { 9 | public class Triangle 10 | { 11 | public Triangle(Vector3 A, Vector3 B, Vector3 C) 12 | { 13 | PointA = A; 14 | PointB = B; 15 | PointC = C; 16 | } 17 | 18 | public Vector3 PointA { get; set; } 19 | public Vector3 PointB { get; set; } 20 | public Vector3 PointC { get; set; } 21 | 22 | public Vector3 Normal 23 | { 24 | get 25 | { 26 | Vector3 a = (PointB - PointA).Cross(PointC - PointA); 27 | return a / (float)System.Math.Sqrt(a.X * a.X + a.Y * a.Y + a.Z * a.Z); 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/ComponentModel/HexReversedAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.ComponentModel 7 | { 8 | [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class HexReversedAttribute : Attribute 10 | { 11 | readonly bool hexReversed; 12 | 13 | // This is a positional argument 14 | public HexReversedAttribute(bool hexReversed = true) 15 | { 16 | this.hexReversed = hexReversed; 17 | } 18 | 19 | public bool HexReversed 20 | { 21 | get { return hexReversed; } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/ComponentModel/PrettyArrayConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.ComponentModel; 6 | using System.Globalization; 7 | 8 | namespace LibEveryFileExplorer.ComponentModel 9 | { 10 | public class PrettyArrayConverter : ArrayConverter 11 | { 12 | public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destType) 13 | { 14 | return ""; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/ComponentModel/ValueTypeTypeConverter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.ComponentModel; 6 | using System.Collections; 7 | using System.Reflection; 8 | 9 | namespace LibEveryFileExplorer.ComponentModel 10 | { 11 | public class ValueTypeTypeConverter : ExpandableObjectConverter 12 | { 13 | public override bool GetCreateInstanceSupported(ITypeDescriptorContext context) 14 | { 15 | return true; 16 | } 17 | 18 | public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues) 19 | { 20 | if (propertyValues == null) 21 | throw new ArgumentNullException("propertyValues"); 22 | 23 | object boxed = Activator.CreateInstance(context.PropertyDescriptor.PropertyType); 24 | foreach (DictionaryEntry entry in propertyValues) 25 | { 26 | PropertyInfo pi = context.PropertyDescriptor.PropertyType.GetProperty(entry.Key.ToString()); 27 | if ((pi != null) && (pi.CanWrite)) 28 | { 29 | pi.SetValue(boxed, Convert.ChangeType(entry.Value, pi.PropertyType), null); 30 | } 31 | } 32 | return boxed; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Compression/CompressionFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Compression 7 | { 8 | public interface CompressionFormatBase 9 | { 10 | byte[] Decompress(byte[] Data); 11 | } 12 | 13 | public abstract class CompressionFormat : CompressionFormatBase where T : CompressionFormatIdentifier, new() 14 | { 15 | private static T _identifier = new T(); 16 | public static T Identifier { get { return _identifier; } } 17 | 18 | public abstract byte[] Decompress(byte[] Data); 19 | } 20 | 21 | public abstract class CompressionFormatIdentifier 22 | { 23 | public abstract String GetCompressionDescription(); 24 | public abstract bool IsFormat(byte[] Data); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Compression/ICompressable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Compression 7 | { 8 | public interface ICompressable 9 | { 10 | byte[] Compress(byte[] Data); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/EFEPlugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer 7 | { 8 | public abstract class EFEPlugin 9 | { 10 | /// 11 | /// Function which is called just after loading all plugins. (so everything is loaded already) 12 | /// Use it for debugging and initialization. 13 | /// 14 | public abstract void OnLoad(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/EFEDiskFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.IO; 6 | 7 | namespace LibEveryFileExplorer.Files 8 | { 9 | public class EFEDiskFile : EFEFile 10 | { 11 | public EFEDiskFile() 12 | { 13 | Name = "Untitled"; 14 | Data = new byte[0]; 15 | } 16 | 17 | public EFEDiskFile(String Path) 18 | { 19 | if (!File.Exists(Path)) throw new ArgumentException("File doesn't exist!"); 20 | this.Path = Path; 21 | Name = System.IO.Path.GetFileName(Path); 22 | PrepareDataForUse(File.ReadAllBytes(Path)); 23 | } 24 | 25 | public String Path { get; set; } 26 | 27 | public override void Save() 28 | { 29 | byte[] Data = GetDataForSave(); 30 | File.Create(Path).Close(); 31 | File.WriteAllBytes(Path, Data); 32 | } 33 | 34 | public override byte[] FindFileRelative(string Path) 35 | { 36 | Path = Path.Replace("/", "\\"); 37 | String NewPath = System.IO.Path.GetDirectoryName(this.Path) + "\\" + Path; 38 | if (File.Exists(NewPath)) return File.ReadAllBytes(NewPath); 39 | return null; 40 | } 41 | 42 | public override bool Equals(object obj) 43 | { 44 | if (!(obj is EFEDiskFile)) return false; 45 | EFEDiskFile a = (EFEDiskFile)obj; 46 | if (a.Path == Path) return true; 47 | return false; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/FileFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.ComponentModel; 6 | using System.Drawing; 7 | 8 | namespace LibEveryFileExplorer.Files 9 | { 10 | internal interface FileFormatBase { } 11 | 12 | public abstract class FileFormat : FileFormatBase where T : FileFormatIdentifier, new() 13 | { 14 | private static T _identifier = new T(); 15 | public static T Identifier { get { return _identifier; } } 16 | } 17 | 18 | public abstract class FileFormatIdentifier 19 | { 20 | protected const String Category_Animations = "Animations"; 21 | protected const String Category_Archives = "Archives"; 22 | protected const String Category_Audio = "Audio"; 23 | protected const String Category_Cells = "Cells"; 24 | protected const String Category_Fonts = "Fonts"; 25 | protected const String Category_Graphics = "Graphics"; 26 | protected const String Category_Layouts = "Layouts"; 27 | protected const String Category_Models = "Models"; 28 | protected const String Category_Palettes = "Palettes"; 29 | protected const String Category_Particles = "Particles"; 30 | protected const String Category_Roms = "Roms"; 31 | protected const String Category_Screens = "Screens"; 32 | protected const String Category_Shaders = "Shaders"; 33 | protected const String Category_Strings = "Strings"; 34 | protected const String Category_Textures = "Textures"; 35 | protected const String Category_Videos = "Videos"; 36 | protected const String Category_Movies = "Movies"; 37 | protected const String Category_Sound = "Sound"; 38 | protected const String Category_Text = "Text"; 39 | 40 | public abstract String GetCategory(); 41 | public abstract String GetFileDescription(); 42 | public abstract String GetFileFilter(); 43 | public virtual Bitmap GetIcon() { return null; } 44 | public virtual Bitmap GetTreeIcon() { return null; } 45 | public abstract FormatMatch IsFormat(EFEFile File); 46 | } 47 | 48 | public enum FormatMatch 49 | { 50 | No, 51 | Extension, 52 | Content 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IChildReactive.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files 7 | { 8 | public interface IChildReactive 9 | { 10 | void OnChildSave(ViewableFile File); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IConvertable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files 7 | { 8 | public interface IConvertable 9 | { 10 | String GetConversionFileFilters(); 11 | bool Convert(int FilterIndex, String Path); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IEmptyCreatable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files 7 | { 8 | public interface IEmptyCreatable 9 | { 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IFileCreatable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files 7 | { 8 | public interface IFileCreatable 9 | { 10 | bool CreateFromFile(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IUseOtherFiles.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files 7 | { 8 | public interface IUseOtherFiles 9 | { 10 | void FileOpened(ViewableFile File); 11 | void FileClosed(ViewableFile File); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IViewable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | 7 | namespace LibEveryFileExplorer.Files 8 | { 9 | public interface IViewable 10 | { 11 | Form GetDialog(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/IWriteable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files 7 | { 8 | public interface IWriteable 9 | { 10 | String GetSaveDefaultFileFilter(); 11 | byte[] Write(); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/SimpleFileSystem/EFESFSFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files.SimpleFileSystem 7 | { 8 | public class EFESFSFile : EFEFile 9 | { 10 | public EFESFSFile(SFSFile File) 11 | { 12 | this.File = File; 13 | this.Parent = Parent; 14 | if (Parent != null) Parent.Children.Add(this); 15 | Name = File.FileName; 16 | PrepareDataForUse(File.Data); 17 | } 18 | 19 | public SFSFile File { get; private set; } 20 | 21 | public override void Save() 22 | { 23 | File.Data = GetDataForSave(); 24 | if (Parent != null) 25 | { 26 | ViewableFile v = EveryFileExplorerUtil.GetViewableFileFromFile(Parent); 27 | if (v.Dialog is IChildReactive) ((IChildReactive)v.Dialog).OnChildSave(EveryFileExplorerUtil.GetViewableFileFromFile(this)); 28 | } 29 | } 30 | 31 | public override byte[] FindFileRelative(string Path) 32 | { 33 | Path = Path.Replace("\\", "/"); 34 | var v = File.Parent.GetFileByPath(Path); 35 | if (v != null) return File.Parent.GetFileByPath(Path).Data; 36 | return null; 37 | } 38 | 39 | public override bool Equals(object obj) 40 | { 41 | if (!(obj is EFESFSFile)) return false; 42 | EFESFSFile a = (EFESFSFile)obj; 43 | if (a.File == File) return true; 44 | return false; 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/SimpleFileSystem/SFSFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Files.SimpleFileSystem 7 | { 8 | public class SFSFile 9 | { 10 | public SFSFile(Int32 Id, String Name, SFSDirectory Parent) 11 | { 12 | FileID = Id; 13 | FileName = Name; 14 | this.Parent = Parent; 15 | } 16 | public String FileName; 17 | public Int32 FileID; 18 | public Byte[] Data; 19 | 20 | public SFSDirectory Parent; 21 | 22 | public override string ToString() 23 | { 24 | return Parent.ToString() + FileName; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Files/ViewableFile.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | using LibEveryFileExplorer.Files; 7 | 8 | namespace LibEveryFileExplorer.Files 9 | { 10 | public class ViewableFile 11 | { 12 | public ViewableFile(EFEFile File, Type Format, bool CreateNew = false) 13 | { 14 | if (!Format.GetInterfaces().Contains(typeof(IViewable))) throw new ArgumentException("This format is not viewable!"); 15 | this.File = File; 16 | if (CreateNew) FileFormat = Format.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, null, new object[0]); 17 | else FileFormat = Format.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, null, new object[] { File.Data }); 18 | Dialog = FileFormat.GetDialog(); 19 | Dialog.Tag = this; 20 | Dialog.Text = File.Name; 21 | Dialog.FormClosing += new FormClosingEventHandler(Dialog_FormClosing); 22 | } 23 | 24 | void Dialog_FormClosing(object sender, FormClosingEventArgs e) 25 | { 26 | if (e.CloseReason == CloseReason.MdiFormClosing) EveryFileExplorerUtil.DisableFileDependencyDialog(); 27 | if (DialogClosing != null) e.Cancel = !DialogClosing.Invoke(this); 28 | } 29 | 30 | public void ShowDialog(Form Parent) 31 | { 32 | Dialog.MdiParent = Parent; 33 | Dialog.Show(); 34 | } 35 | 36 | public EFEFile File { get; private set; } 37 | public dynamic FileFormat { get; private set; } 38 | public Form Dialog { get; private set; } 39 | public delegate bool DialogClosingEventHandler(ViewableFile VFile); 40 | public event DialogClosingEventHandler DialogClosing; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/GFX/ColorFormat.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.GFX 7 | { 8 | public class ColorFormat 9 | { 10 | public readonly int AShift, ASize, RShift, RSize, GShift, GSize, BShift, BSize; 11 | 12 | public ColorFormat(int AShift, int ASize, int RShift, int RSize, int GShift, int GSize, int BShift, int BSize) 13 | { 14 | this.AShift = AShift; 15 | this.ASize = ASize; 16 | this.RShift = RShift; 17 | this.RSize = RSize; 18 | this.GShift = GShift; 19 | this.GSize = GSize; 20 | this.BShift = BShift; 21 | this.BSize = BSize; 22 | } 23 | //The naming is based on the bit order when read out in the correct endianness 24 | public static readonly ColorFormat ARGB8888 = new ColorFormat(24, 8, 16, 8, 8, 8, 0, 8); 25 | 26 | public static readonly ColorFormat ARGB3444 = new ColorFormat(12, 3, 8, 4, 4, 4, 0, 4); 27 | 28 | public static readonly ColorFormat RGBA8888 = new ColorFormat(0, 8, 24, 8, 16, 8, 8, 8); 29 | 30 | public static readonly ColorFormat RGBA4444 = new ColorFormat(0, 4, 12, 4, 8, 4, 4, 4); 31 | 32 | public static readonly ColorFormat RGB888 = new ColorFormat(0, 0, 16, 8, 8, 8, 0, 8); 33 | 34 | public static readonly ColorFormat RGB565 = new ColorFormat(0, 0, 11, 5, 5, 6, 0, 5); 35 | 36 | public static readonly ColorFormat ARGB1555 = new ColorFormat(15, 1, 10, 5, 5, 5, 0, 5); 37 | public static readonly ColorFormat XRGB1555 = new ColorFormat(0, 0, 10, 5, 5, 5, 0, 5); 38 | 39 | public static readonly ColorFormat ABGR1555 = new ColorFormat(15, 1, 0, 5, 5, 5, 10, 5); 40 | public static readonly ColorFormat XBGR1555 = new ColorFormat(0, 0, 0, 5, 5, 5, 10, 5); 41 | 42 | public static readonly ColorFormat RGBA5551 = new ColorFormat(0, 1, 11, 5, 6, 5, 1, 5); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/GameData/GameDataSection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | using System.IO; 7 | using LibEveryFileExplorer.IO; 8 | 9 | namespace LibEveryFileExplorer.GameData 10 | { 11 | public abstract class GameDataSection where T : GameDataSectionEntry 12 | { 13 | public String Signature; 14 | public UInt32 NrEntries; 15 | public List Entries = new List(); 16 | 17 | public abstract String[] GetColumnNames(); 18 | public ListViewItem[] GetListViewItems() 19 | { 20 | ListViewItem[] items = new ListViewItem[Entries.Count]; 21 | for (int i = 0; i < NrEntries; i++) 22 | { 23 | items[i] = Entries[i].GetListViewItem(); 24 | items[i].Text = i.ToString(); 25 | } 26 | return items; 27 | } 28 | public T this[int index] 29 | { 30 | get { return Entries[index]; } 31 | set { Entries[index] = value; } 32 | } 33 | } 34 | 35 | public abstract class GameDataSectionEntry 36 | { 37 | public virtual void Write(EndianBinaryWriter er) 38 | { 39 | throw new NotImplementedException(); 40 | } 41 | 42 | public abstract ListViewItem GetListViewItem(); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/HexUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer 7 | { 8 | public class HexUtil 9 | { 10 | public static String GetHexReverse(sbyte Value) 11 | { 12 | return (Value & 0xFF).ToString("X2"); 13 | } 14 | public static String GetHexReverse(byte Value) 15 | { 16 | return Value.ToString("X2"); 17 | } 18 | public static String GetHexReverse(short Value) 19 | { 20 | return BitConverter.ToString(BitConverter.GetBytes(Value)).Replace("-", ""); 21 | } 22 | public static String GetHexReverse(ushort Value) 23 | { 24 | return BitConverter.ToString(BitConverter.GetBytes(Value)).Replace("-", ""); 25 | } 26 | public static String GetHexReverse(int Value) 27 | { 28 | return BitConverter.ToString(BitConverter.GetBytes(Value)).Replace("-", ""); 29 | } 30 | public static String GetHexReverse(uint Value) 31 | { 32 | return BitConverter.ToString(BitConverter.GetBytes(Value)).Replace("-", ""); 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/EndianBinaryWriterEx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.IO; 6 | 7 | namespace LibEveryFileExplorer.IO 8 | { 9 | public class EndianBinaryWriterEx : EndianBinaryWriter 10 | { 11 | public EndianBinaryWriterEx(Stream baseStream) 12 | : base(baseStream) { } 13 | 14 | public EndianBinaryWriterEx(Stream baseStream, Endianness endianness) 15 | : base(baseStream, endianness) { } 16 | 17 | private struct SizeSection 18 | { 19 | public long StartAddress; 20 | public int SizeOffset; 21 | } 22 | 23 | private Stack SizeSections = new Stack(); 24 | 25 | public void BeginSizeSection(int SizeOffset = 0) 26 | { 27 | SizeSections.Push(new SizeSection() { StartAddress = BaseStream.Position, SizeOffset = SizeOffset }); 28 | } 29 | 30 | public void EndSizeSection() 31 | { 32 | SizeSection s = SizeSections.Pop(); 33 | uint length = (uint)(BaseStream.Position - s.StartAddress); 34 | long curpos = BaseStream.Position; 35 | BaseStream.Position = s.StartAddress + s.SizeOffset; 36 | Write(length); 37 | BaseStream.Position = curpos; 38 | } 39 | 40 | public void WritePadding(int Alignment, byte PadChar = 0) 41 | { 42 | while ((BaseStream.Position % Alignment) != 0) Write(PadChar); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | public abstract class BinaryAttribute : Attribute 9 | { 10 | public abstract Object Value { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryBOMAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryBOMAttribute : BinaryAttribute 10 | { 11 | readonly uint LittleEndianMark; 12 | 13 | public BinaryBOMAttribute(uint LittleEndianMark) 14 | { 15 | this.LittleEndianMark = LittleEndianMark; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return LittleEndianMark; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryBooleanSizeAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryBooleanSizeAttribute : BinaryAttribute 10 | { 11 | readonly BooleanSize Size; 12 | 13 | public BinaryBooleanSizeAttribute(BooleanSize Size) 14 | { 15 | this.Size = Size; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return Size; } 21 | } 22 | } 23 | 24 | public enum BooleanSize 25 | { 26 | U8, 27 | U16, 28 | U32 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryByteArraySignatureAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryByteArraySignatureAttribute : BinaryAttribute 10 | { 11 | readonly byte[] Signature; 12 | 13 | public BinaryByteArraySignatureAttribute(params byte[] Signature) 14 | { 15 | this.Signature = Signature; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return Signature; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryFixedPointAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryFixedPointAttribute : BinaryAttribute 10 | { 11 | readonly uint Format; 12 | 13 | public BinaryFixedPointAttribute(bool Sign, int IntPart, int FracPart) 14 | { 15 | if(IntPart < 0 || FracPart < 0) throw new ArgumentException("IntPart and FracPart shoulf be greater or equal to 0!"); 16 | if (IntPart + FracPart + (Sign ? 1 : 0) > 64 || IntPart + FracPart + (Sign ? 1 : 0) == 0) throw new ArgumentException("Total number of bits should be greater than 0 and smaller or equal to 64!"); 17 | this.Format = (uint)(Sign ? 1 : 0) << 14 | (uint)(IntPart & 0x7F) << 7 | (uint)(FracPart & 0x7F); 18 | } 19 | 20 | public override object Value 21 | { 22 | get { return Format; } 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryFixedSizeAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryFixedSizeAttribute : BinaryAttribute 10 | { 11 | readonly int Length; 12 | 13 | public BinaryFixedSizeAttribute(int Length) 14 | { 15 | if (Length <= 0) throw new ArgumentException("Length must be greater than 0!"); 16 | this.Length = Length; 17 | } 18 | 19 | public override object Value 20 | { 21 | get { return Length; } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryIgnoreAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryIgnoreAttribute : BinaryAttribute 10 | { 11 | readonly bool Ignore; 12 | 13 | public BinaryIgnoreAttribute(bool Ignore = true) 14 | { 15 | this.Ignore = Ignore; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return Ignore; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryStringEncodingAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryStringEncodingAttribute : BinaryAttribute 10 | { 11 | readonly Encoding Type; 12 | 13 | public BinaryStringEncodingAttribute(Encoding Type) 14 | { 15 | this.Type = Type; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return Type; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryStringNTAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryStringNTAttribute : BinaryAttribute 10 | { 11 | readonly bool NullTerminated; 12 | 13 | public BinaryStringNTAttribute(bool NullTerminated = true) 14 | { 15 | this.NullTerminated = NullTerminated; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return NullTerminated; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/Serialization/BinaryStringSignatureAttribute.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO.Serialization 7 | { 8 | [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, Inherited = true, AllowMultiple = false)] 9 | public sealed class BinaryStringSignatureAttribute : BinaryAttribute 10 | { 11 | readonly String Signature; 12 | 13 | public BinaryStringSignatureAttribute(String Signature) 14 | { 15 | this.Signature = Signature; 16 | } 17 | 18 | public override object Value 19 | { 20 | get { return Signature; } 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/IO/SignatureNotCorrectException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.IO 7 | { 8 | [Serializable] 9 | public class SignatureNotCorrectException : Exception 10 | { 11 | public string BadSignature { get; private set; } 12 | public string CorrectSignature { get; private set; } 13 | public long Offset { get; private set; } 14 | public SignatureNotCorrectException(string BadSignature, string CorrectSignature, long Offset) 15 | : base("Signature '" + BadSignature + "' at 0x" + Offset.ToString("X8") + " does not match '" + CorrectSignature + "'.") 16 | { 17 | this.BadSignature = BadSignature; 18 | this.CorrectSignature = CorrectSignature; 19 | this.Offset = Offset; 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Math/MathUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.Math 7 | { 8 | public class MathUtil 9 | { 10 | public static int Clamp(int value, int min, int max) 11 | { 12 | if (value < min) value = min; 13 | if (value > max) value = max; 14 | return (short)value; 15 | } 16 | 17 | public static float RadToDeg(float Radians) 18 | { 19 | return Radians * (180f / (float)System.Math.PI); 20 | } 21 | 22 | public static double RadToDeg(double Radians) 23 | { 24 | return Radians * (180.0 / System.Math.PI); 25 | } 26 | 27 | public static float DegToRad(float Degrees) 28 | { 29 | return Degrees * ((float)System.Math.PI / 180f); 30 | } 31 | 32 | public static double DegToRad(double Degrees) 33 | { 34 | return Degrees * (System.Math.PI / 180.0); 35 | } 36 | 37 | public static int GetNearest2Power(float Value) 38 | { 39 | return (int)System.Math.Ceiling(System.Math.Log(Value, 2)); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("LibEveryFileExplorer")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("c373fbf1-4043-43c7-8c4c-946445e1c19d")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/Resources/folder-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/LibEveryFileExplorer/Resources/folder-open.png -------------------------------------------------------------------------------- /LibEveryFileExplorer/Resources/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/LibEveryFileExplorer/Resources/folder.png -------------------------------------------------------------------------------- /LibEveryFileExplorer/SND/DSPADPCM.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Math; 6 | 7 | namespace LibEveryFileExplorer.SND 8 | { 9 | public class DSPADPCM 10 | { 11 | Int16[] Table; 12 | double Last1 = 0; 13 | double Last2 = 0; 14 | public DSPADPCM(Int16[] CoefTable) 15 | { 16 | Table = CoefTable; 17 | } 18 | 19 | public void UpdateLastSamples(short Prev1, short Prev2) 20 | { 21 | Last1 = Prev1; 22 | Last2 = Prev2; 23 | } 24 | 25 | public Int16[] GetWaveData(byte[] Data, int Offset, int Length) 26 | { 27 | List DataOut = new List(); 28 | 29 | for (int i = Offset + 1; i < (Offset + Length); i += 8) 30 | { 31 | int Scale = 1 << (Data[i - 1] & 0xF); 32 | int Coef = (Data[i - 1] >> 4) & 0xF; 33 | double Coef1 = Table[Coef * 2]; 34 | double Coef2 = Table[Coef * 2 + 1]; 35 | 36 | for (int j = 0; j < 7; j++) 37 | { 38 | int high = Data[i + j] >> 4; 39 | int low = Data[i + j] & 0xF; 40 | if (high >= 8) high -= 16; 41 | if (low >= 8) low -= 16; 42 | double val = (((high * Scale) << 11) + 1024.0 + (Coef1 * Last1 + Coef2 * Last2)) / 2048.0; //>> 11; 43 | short samp = (short)MathUtil.Clamp((int)val, short.MinValue, short.MaxValue); 44 | DataOut.Add(samp); 45 | Last2 = Last1; 46 | Last1 = val; 47 | val = (((low * Scale) << 11) + 1024.0 + (Coef1 * Last1 + Coef2 * Last2)) / 2048.0;//>> 11; 48 | samp = (short)MathUtil.Clamp((int)val, short.MinValue, short.MaxValue); 49 | DataOut.Add(samp); 50 | Last2 = Last1; 51 | Last1 = val; 52 | } 53 | } 54 | return DataOut.ToArray(); 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/SND/SNDUtil.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.SND 7 | { 8 | public class SNDUtil 9 | { 10 | public static byte[] InterleaveChannels(params Int16[][] Channels) 11 | { 12 | if(Channels.Length == 0) return new byte[0]; 13 | byte[] Result = new byte[Channels[0].Length * Channels.Length * 2]; 14 | for (int i = 0; i < Channels[0].Length; i++) 15 | { 16 | for (int j = 0; j < Channels.Length; j++) 17 | { 18 | Result[i * 2 * Channels.Length + j * 2] = (byte)(Channels[j][i] & 0xFF); 19 | Result[i * 2 * Channels.Length + j * 2 + 1] = (byte)(Channels[j][i] >> 8); 20 | } 21 | } 22 | return Result; 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/StaticDynamic.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Dynamic; 6 | using System.Reflection; 7 | 8 | namespace LibEveryFileExplorer 9 | { 10 | public class StaticDynamic : DynamicObject 11 | { 12 | private Type _type; 13 | public StaticDynamic(Type type) { _type = type; } 14 | 15 | // Handle static properties 16 | public override bool TryGetMember(GetMemberBinder binder, out object result) 17 | { 18 | try 19 | { 20 | PropertyInfo prop = _type.GetProperty(binder.Name, BindingFlags.FlattenHierarchy | BindingFlags.Static | BindingFlags.Public); 21 | if (prop == null) 22 | { 23 | result = null; 24 | return false; 25 | } 26 | 27 | result = prop.GetValue(null, null); 28 | return true; 29 | } catch (Exception e) 30 | { 31 | result = null; 32 | return false; 33 | } 34 | 35 | } 36 | 37 | // Handle static methods 38 | public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result) 39 | { 40 | MethodInfo method = _type.GetMethod(binder.Name, BindingFlags.FlattenHierarchy | BindingFlags.Static | BindingFlags.Public); 41 | if (method == null) 42 | { 43 | result = null; 44 | return false; 45 | } 46 | 47 | result = method.Invoke(null, args); 48 | return true; 49 | } 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/UI/GameDataSectionViewerBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using LibEveryFileExplorer.GameData; 10 | 11 | namespace LibEveryFileExplorer.UI 12 | { 13 | public partial class GameDataSectionViewerBase : UserControl 14 | { 15 | public GameDataSectionViewerBase() 16 | { 17 | InitializeComponent(); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/UI/ListViewNF.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using System.Windows.Forms; 6 | 7 | namespace LibEveryFileExplorer.UI 8 | { 9 | public class ListViewNF : System.Windows.Forms.ListView 10 | { 11 | public ListViewNF() 12 | { 13 | //Activate double buffering 14 | this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); 15 | 16 | //Enable the OnNotifyMessage event so we get a chance to filter out 17 | // Windows messages before they get to the form's WndProc 18 | this.SetStyle(ControlStyles.EnableNotifyMessage, true); 19 | } 20 | 21 | protected override void OnNotifyMessage(Message m) 22 | { 23 | //Filter out the WM_ERASEBKGND message 24 | if (m.Msg != 0x14) 25 | { 26 | base.OnNotifyMessage(m); 27 | } 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /LibEveryFileExplorer/UI/MainMenu.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace LibEveryFileExplorer.UI 7 | { 8 | public class MainMenu : System.Windows.Forms.MainMenu { 9 | private System.ComponentModel.IContainer iContainer; 10 | public MainMenu(System.ComponentModel.IContainer iContainer) 11 | { 12 | // TODO: Complete member initialization 13 | this.iContainer = iContainer; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Libraries/HashTable.saht: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/HashTable.saht -------------------------------------------------------------------------------- /Libraries/Microsoft.VisualBasic.PowerPacks.Vs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/Microsoft.VisualBasic.PowerPacks.Vs.dll -------------------------------------------------------------------------------- /Libraries/NAudio.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/NAudio.dll -------------------------------------------------------------------------------- /Libraries/OpenTK.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/OpenTK.dll -------------------------------------------------------------------------------- /Libraries/Tao.OpenGl.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/Tao.OpenGl.dll -------------------------------------------------------------------------------- /Libraries/Tao.Platform.Windows.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/Tao.Platform.Windows.dll -------------------------------------------------------------------------------- /Libraries/ctr_WaveConverter32/SoundFoundation.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/ctr_WaveConverter32/SoundFoundation.dll -------------------------------------------------------------------------------- /Libraries/ctr_WaveConverter32/SoundFoundationCtr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/ctr_WaveConverter32/SoundFoundationCtr.dll -------------------------------------------------------------------------------- /Libraries/ctr_WaveConverter32/ToolDevelopmentKit.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/ctr_WaveConverter32/ToolDevelopmentKit.dll -------------------------------------------------------------------------------- /Libraries/ctr_WaveConverter32/WaveCodecCtr.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/ctr_WaveConverter32/WaveCodecCtr.dll -------------------------------------------------------------------------------- /Libraries/ctr_WaveConverter32/ctr_WaveConverter32.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/ctr_WaveConverter32/ctr_WaveConverter32.exe -------------------------------------------------------------------------------- /Libraries/vgmstream/at3plusdecoder.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/at3plusdecoder.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/avcodec-vgmstream-57.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/avcodec-vgmstream-57.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/avformat-vgmstream-57.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/avformat-vgmstream-57.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/avutil-vgmstream-55.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/avutil-vgmstream-55.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/in_vgmstream.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/in_vgmstream.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/libg719_decode.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/libg719_decode.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/libg7221_decode.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/libg7221_decode.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/libmpg123-0.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/libmpg123-0.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/libvorbis.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/libvorbis.dll -------------------------------------------------------------------------------- /Libraries/vgmstream/test.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/test.exe -------------------------------------------------------------------------------- /Libraries/vgmstream/xmp-vgmstream.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/Libraries/vgmstream/xmp-vgmstream.dll -------------------------------------------------------------------------------- /MarioKart/KCLHeader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | 7 | namespace MarioKart 8 | { 9 | public abstract class KCLHeader 10 | { 11 | public UInt32 VerticesOffset; 12 | public UInt32 NormalsOffset; 13 | public UInt32 PlanesOffset;//-0x10 14 | public UInt32 OctreeOffset; 15 | public Single Unknown1; 16 | public Vector3 OctreeOrigin; 17 | public UInt32 XMask; 18 | public UInt32 YMask; 19 | public UInt32 ZMask; 20 | public UInt32 CoordShift; 21 | public UInt32 YShift; 22 | public UInt32 ZShift; 23 | public Single Unknown2; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /MarioKart/MK64/F3DEX.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace MarioKart.MK64 7 | { 8 | public class F3DEX 9 | { 10 | public enum F3DEXCommand : byte 11 | { 12 | F3D_SPNOOP = 0x00, 13 | F3D_MTX = 0x01, 14 | F3D_RESERVED0 = 0x02, 15 | F3D_MOVEMEM = 0x03, 16 | F3D_VTX = 0x04, 17 | F3D_RESERVED1 = 0x05, 18 | F3D_DL = 0x06, 19 | F3D_RESERVED2 = 0x07, 20 | F3D_RESERVED3 = 0x08, 21 | F3D_SPRITE2D_BASE = 0x09, 22 | 23 | F3D_MOVEWORD = 0xBC, 24 | G_RDPLOADSYNC = 0xE6, 25 | G_RDPTILESYNC = 0xE8, 26 | G_LOADBLOCK = 0xF3, 27 | G_SETTILESIZE = 0xF4, 28 | G_SETTILE = 0xF5, 29 | G_SETTIMG = 0xFD 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /MarioKart/MK64/MIO0.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.IO; 6 | 7 | namespace MarioKart.MK64 8 | { 9 | public class MIO0 10 | { 11 | public static byte[] Decompress(byte[] Compressed) 12 | { 13 | if (Compressed[0] != 'M' || Compressed[1] != 'I' || Compressed[2] != 'O' || Compressed[3] != '0') return null; 14 | uint OutputSize = IOUtil.ReadU32BE(Compressed, 4); 15 | byte[] Result = new byte[OutputSize]; 16 | uint CompOffs = IOUtil.ReadU32BE(Compressed, 8); 17 | uint RawOffs = IOUtil.ReadU32BE(Compressed, 12); 18 | uint HeaderOffs = 16; 19 | uint OutOffs = 0; 20 | while (true) 21 | { 22 | byte header = Compressed[HeaderOffs++]; 23 | for (int i = 0; i < 8; i++) 24 | { 25 | if ((header & 0x80) != 0) Result[OutOffs++] = Compressed[RawOffs++]; 26 | else 27 | { 28 | ushort data = IOUtil.ReadU16BE(Compressed, (int)CompOffs); 29 | CompOffs += 2; 30 | int offs = (data & 0xFFF) + 1; 31 | int length = (data >> 12) + 3; 32 | for (int j = 0; j < length; j++) 33 | { 34 | Result[OutOffs] = Result[OutOffs - offs]; 35 | OutOffs++; 36 | } 37 | } 38 | if (OutOffs >= OutputSize) return Result; 39 | header <<= 1; 40 | } 41 | } 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /MarioKart/MK7/KMP/ENPT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.Windows.Forms; 7 | using System.IO; 8 | using LibEveryFileExplorer.GameData; 9 | using LibEveryFileExplorer.Files; 10 | using LibEveryFileExplorer; 11 | using LibEveryFileExplorer.Math; 12 | using LibEveryFileExplorer.IO; 13 | 14 | namespace MarioKart.MK7.KMP 15 | { 16 | public class ENPT : GameDataSection 17 | { 18 | public ENPT() { Signature = "TPNE"; } 19 | public ENPT(EndianBinaryReaderEx er) 20 | { 21 | Signature = er.ReadString(Encoding.ASCII, 4); 22 | if (Signature != "TPNE") throw new SignatureNotCorrectException(Signature, "TPNE", er.BaseStream.Position - 4); 23 | NrEntries = er.ReadUInt32(); 24 | for (int i = 0; i < NrEntries; i++) Entries.Add(new ENPTEntry(er)); 25 | } 26 | 27 | public override String[] GetColumnNames() 28 | { 29 | return new String[] { 30 | "ID", 31 | "X", "Y", "Z", 32 | "?", 33 | "?", 34 | "?" 35 | }; 36 | } 37 | public class ENPTEntry : GameDataSectionEntry 38 | { 39 | public ENPTEntry() { } 40 | public ENPTEntry(EndianBinaryReaderEx er) 41 | { 42 | er.ReadObject(this); 43 | } 44 | 45 | public override ListViewItem GetListViewItem() 46 | { 47 | ListViewItem m = new ListViewItem(""); 48 | m.SubItems.Add(Position.X.ToString()); 49 | m.SubItems.Add(Position.Y.ToString()); 50 | m.SubItems.Add(Position.Z.ToString()); 51 | 52 | m.SubItems.Add(Unknown1.ToString()); 53 | m.SubItems.Add(HexUtil.GetHexReverse(Unknown2)); 54 | m.SubItems.Add(HexUtil.GetHexReverse(Unknown3)); 55 | return m; 56 | } 57 | public Vector3 Position { get; set; } 58 | public Single Unknown1 { get; set; } 59 | public UInt32 Unknown2 { get; set; } 60 | public UInt32 Unknown3 { get; set; } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /MarioKart/MK7/KMP/GLPT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.Windows.Forms; 7 | using System.IO; 8 | using LibEveryFileExplorer.GameData; 9 | using LibEveryFileExplorer.Files; 10 | using LibEveryFileExplorer; 11 | using LibEveryFileExplorer.Math; 12 | using LibEveryFileExplorer.IO; 13 | 14 | namespace MarioKart.MK7.KMP 15 | { 16 | public class GLPT : GameDataSection 17 | { 18 | public GLPT() { Signature = "TPLG"; } 19 | public GLPT(EndianBinaryReaderEx er) 20 | { 21 | Signature = er.ReadString(Encoding.ASCII, 4); 22 | if (Signature != "TPLG") throw new SignatureNotCorrectException(Signature, "TPLG", er.BaseStream.Position - 4); 23 | NrEntries = er.ReadUInt32(); 24 | for (int i = 0; i < NrEntries; i++) Entries.Add(new GLPTEntry(er)); 25 | } 26 | 27 | public override String[] GetColumnNames() 28 | { 29 | return new String[] { 30 | "ID", 31 | "X", "Y", "Z", 32 | "?", 33 | "?", 34 | "?" 35 | }; 36 | } 37 | public class GLPTEntry : GameDataSectionEntry 38 | { 39 | public GLPTEntry() { } 40 | public GLPTEntry(EndianBinaryReaderEx er) 41 | { 42 | er.ReadObject(this); 43 | } 44 | 45 | public override ListViewItem GetListViewItem() 46 | { 47 | ListViewItem m = new ListViewItem(""); 48 | m.SubItems.Add(Position.X.ToString()); 49 | m.SubItems.Add(Position.Y.ToString()); 50 | m.SubItems.Add(Position.Z.ToString()); 51 | 52 | m.SubItems.Add(Unknown1.ToString()); 53 | m.SubItems.Add(HexUtil.GetHexReverse(Unknown2)); 54 | m.SubItems.Add(HexUtil.GetHexReverse(Unknown3)); 55 | return m; 56 | } 57 | public Vector3 Position { get; set; } 58 | public Single Unknown1 { get; set; } 59 | public UInt32 Unknown2 { get; set; } 60 | public UInt32 Unknown3 { get; set; } 61 | } 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /MarioKart/MK7/KMP/ITPT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.Windows.Forms; 7 | using System.IO; 8 | using LibEveryFileExplorer.GameData; 9 | using LibEveryFileExplorer.Files; 10 | using LibEveryFileExplorer; 11 | using LibEveryFileExplorer.Math; 12 | using LibEveryFileExplorer.IO; 13 | 14 | namespace MarioKart.MK7.KMP 15 | { 16 | public class ITPT : GameDataSection 17 | { 18 | public ITPT() { Signature = "TPTI"; } 19 | public ITPT(EndianBinaryReaderEx er) 20 | { 21 | Signature = er.ReadString(Encoding.ASCII, 4); 22 | if (Signature != "TPTI") throw new SignatureNotCorrectException(Signature, "TPTI", er.BaseStream.Position - 4); 23 | NrEntries = er.ReadUInt32(); 24 | for (int i = 0; i < NrEntries; i++) Entries.Add(new ITPTEntry(er)); 25 | } 26 | 27 | public override String[] GetColumnNames() 28 | { 29 | return new String[] { 30 | "ID", 31 | "X", "Y", "Z", 32 | "?", 33 | "?" 34 | }; 35 | } 36 | public class ITPTEntry : GameDataSectionEntry 37 | { 38 | public ITPTEntry() { } 39 | public ITPTEntry(EndianBinaryReaderEx er) 40 | { 41 | er.ReadObject(this); 42 | } 43 | 44 | public override ListViewItem GetListViewItem() 45 | { 46 | ListViewItem m = new ListViewItem(""); 47 | m.SubItems.Add(Position.X.ToString()); 48 | m.SubItems.Add(Position.Y.ToString()); 49 | m.SubItems.Add(Position.Z.ToString()); 50 | 51 | m.SubItems.Add(Unknown1.ToString()); 52 | m.SubItems.Add(HexUtil.GetHexReverse(Unknown2)); 53 | return m; 54 | } 55 | public Vector3 Position { get; set; } 56 | public Single Unknown1 { get; set; } 57 | public UInt32 Unknown2 { get; set; } 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /MarioKart/MK7/KMP/JGPT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.Windows.Forms; 7 | using System.IO; 8 | using LibEveryFileExplorer.GameData; 9 | using LibEveryFileExplorer.Files; 10 | using LibEveryFileExplorer; 11 | using LibEveryFileExplorer.Math; 12 | using LibEveryFileExplorer.IO; 13 | 14 | namespace MarioKart.MK7.KMP 15 | { 16 | public class JGPT : GameDataSection 17 | { 18 | public JGPT() { Signature = "TPGJ"; } 19 | public JGPT(EndianBinaryReaderEx er) 20 | { 21 | Signature = er.ReadString(Encoding.ASCII, 4); 22 | if (Signature != "TPGJ") throw new SignatureNotCorrectException(Signature, "TPGJ", er.BaseStream.Position - 4); 23 | NrEntries = er.ReadUInt32(); 24 | for (int i = 0; i < NrEntries; i++) Entries.Add(new JGPTEntry(er)); 25 | } 26 | 27 | public override String[] GetColumnNames() 28 | { 29 | return new String[] { 30 | "ID", 31 | "X", "Y", "Z", 32 | "X Angle", "Y Angle", "Z Angle", 33 | "Index", 34 | "?" 35 | }; 36 | } 37 | public class JGPTEntry : GameDataSectionEntry 38 | { 39 | public JGPTEntry() 40 | { 41 | Index = 0; 42 | Unknown = 0xFFFF; 43 | } 44 | public JGPTEntry(EndianBinaryReaderEx er) 45 | { 46 | er.ReadObject(this); 47 | Rotation = new Vector3(MathUtil.RadToDeg(Rotation.X), MathUtil.RadToDeg(Rotation.Y), MathUtil.RadToDeg(Rotation.Z)); 48 | } 49 | 50 | public override ListViewItem GetListViewItem() 51 | { 52 | ListViewItem m = new ListViewItem(""); 53 | m.SubItems.Add(Position.X.ToString()); 54 | m.SubItems.Add(Position.Y.ToString()); 55 | m.SubItems.Add(Position.Z.ToString()); 56 | 57 | m.SubItems.Add(Rotation.X.ToString()); 58 | m.SubItems.Add(Rotation.Y.ToString()); 59 | m.SubItems.Add(Rotation.Z.ToString()); 60 | 61 | m.SubItems.Add(Index.ToString()); 62 | m.SubItems.Add(HexUtil.GetHexReverse(Unknown)); 63 | return m; 64 | } 65 | public Vector3 Position { get; set; } 66 | public Vector3 Rotation { get; set; } 67 | public UInt16 Index { get; set; } 68 | public UInt16 Unknown { get; set; } 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /MarioKart/MK7/KMP/KTPT.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.Windows.Forms; 7 | using System.IO; 8 | using LibEveryFileExplorer.GameData; 9 | using LibEveryFileExplorer.Files; 10 | using LibEveryFileExplorer; 11 | using LibEveryFileExplorer.Math; 12 | using LibEveryFileExplorer.IO; 13 | 14 | namespace MarioKart.MK7.KMP 15 | { 16 | public class KTPT : GameDataSection 17 | { 18 | public KTPT() { Signature = "TPTK"; } 19 | public KTPT(EndianBinaryReaderEx er) 20 | { 21 | Signature = er.ReadString(Encoding.ASCII, 4); 22 | if (Signature != "TPTK") throw new SignatureNotCorrectException(Signature, "TPTK", er.BaseStream.Position - 4); 23 | NrEntries = er.ReadUInt32(); 24 | for (int i = 0; i < NrEntries; i++) Entries.Add(new KTPTEntry(er)); 25 | } 26 | 27 | public override String[] GetColumnNames() 28 | { 29 | return new String[] { 30 | "ID", 31 | "X", "Y", "Z", 32 | "X Angle", "Y Angle", "Z Angle", 33 | "Index" 34 | }; 35 | } 36 | public class KTPTEntry : GameDataSectionEntry 37 | { 38 | public KTPTEntry() { } 39 | public KTPTEntry(EndianBinaryReaderEx er) 40 | { 41 | er.ReadObject(this); 42 | Rotation = new Vector3(MathUtil.RadToDeg(Rotation.X), MathUtil.RadToDeg(Rotation.Y), MathUtil.RadToDeg(Rotation.Z)); 43 | } 44 | 45 | public override ListViewItem GetListViewItem() 46 | { 47 | ListViewItem m = new ListViewItem(""); 48 | m.SubItems.Add(Position.X.ToString()); 49 | m.SubItems.Add(Position.Y.ToString()); 50 | m.SubItems.Add(Position.Z.ToString()); 51 | 52 | m.SubItems.Add(Rotation.X.ToString()); 53 | m.SubItems.Add(Rotation.Y.ToString()); 54 | m.SubItems.Add(Rotation.Z.ToString()); 55 | 56 | m.SubItems.Add(Index.ToString()); 57 | return m; 58 | } 59 | public Vector3 Position { get; set; } 60 | public Vector3 Rotation { get; set; } 61 | public UInt32 Index { get; set; } 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /MarioKart/MK7/KMP/POTI.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | using System.IO; 7 | using LibEveryFileExplorer.Files; 8 | using LibEveryFileExplorer.IO; 9 | 10 | namespace MarioKart.MK7.KMP 11 | { 12 | public class POTI 13 | { 14 | public POTI() 15 | { 16 | Signature = "ITOP"; 17 | } 18 | public POTI(EndianBinaryReader er) 19 | { 20 | Signature = er.ReadString(Encoding.ASCII, 4); 21 | if (Signature != "ITOP") throw new SignatureNotCorrectException(Signature, "ITOP", er.BaseStream.Position - 4); 22 | NrRoutes = er.ReadUInt16(); 23 | NrPoints = er.ReadUInt16(); 24 | for (int i = 0; i < NrRoutes; i++) Routes.Add(new POTIRoute(er)); 25 | } 26 | public String Signature; 27 | public UInt16 NrRoutes; 28 | public UInt16 NrPoints; 29 | 30 | public List Routes = new List(); 31 | public class POTIRoute 32 | { 33 | public POTIRoute(EndianBinaryReader er) 34 | { 35 | NrPoints = er.ReadUInt16(); 36 | Setting1 = er.ReadByte(); 37 | Setting2 = er.ReadByte(); 38 | for (int i = 0; i < NrPoints; i++) Points.Add(new POTIPoint(er)); 39 | } 40 | public UInt16 NrPoints; 41 | public Byte Setting1; 42 | public Byte Setting2; 43 | 44 | public List Points = new List(); 45 | public class POTIPoint 46 | { 47 | public POTIPoint(EndianBinaryReader er) 48 | { 49 | Position = er.ReadVector3(); 50 | Setting1 = er.ReadUInt16(); 51 | Setting2 = er.ReadUInt16(); 52 | } 53 | public Vector3 Position; 54 | public UInt16 Setting1; 55 | public UInt16 Setting2; 56 | } 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /MarioKart/MarioKartPlugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer; 6 | using LibEveryFileExplorer.Script; 7 | using System.IO; 8 | using CommonFiles; 9 | using LibEveryFileExplorer.IO; 10 | 11 | namespace MarioKart 12 | { 13 | public class MarioKartPlugin : EFEPlugin 14 | { 15 | public override void OnLoad() 16 | { 17 | EFEScript.RegisterCommand("MarioKart.MKDS.KCL.Generate", (Action>)MarioKart_MKDS_KCL_Generate); 18 | EFEScript.RegisterCommand("MarioKart.MK7.KCL.Regenerate", (Action)MarioKart_MK7_KCL_Regenerate); 19 | } 20 | 21 | public static void MarioKart_MK7_KCL_Regenerate(String OrigPath, String NewPath) 22 | { 23 | MK7.KCL oldkcl = new MK7.KCL(File.ReadAllBytes(OrigPath)); 24 | List trilist = new List(); 25 | foreach (var v in oldkcl.Planes) 26 | { 27 | trilist.Add(oldkcl.GetTriangle(v)); 28 | } 29 | oldkcl.Octree = KCLOctree.FromTriangles(trilist.ToArray(), oldkcl.Header, 2048, 128, 32, 10, null, null); 30 | File.WriteAllBytes(NewPath, oldkcl.Write()); 31 | } 32 | 33 | public static void MarioKart_MKDS_KCL_Generate(String OBJPath, String OutPath, Dictionary TypeMapping) 34 | { 35 | MKDS.KCL k = new MKDS.KCL(); 36 | OBJ o = new OBJ(File.ReadAllBytes(OBJPath)); 37 | List matnames = new List(); 38 | foreach (var v in o.Faces) if (!matnames.Contains(v.Material)) matnames.Add(v.Material); 39 | Dictionary Colli = new Dictionary(); 40 | foreach (string s in matnames) 41 | { 42 | if (!TypeMapping.ContainsKey(s)) TypeMapping.Add(s, 0); 43 | Colli.Add(s, true); 44 | } 45 | k.FromOBJ(o, TypeMapping, Colli); 46 | File.Create(OutPath).Close(); 47 | File.WriteAllBytes(OutPath, k.Write()); 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /MarioKart/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Mario Kart Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("a09a9bbe-838c-4edc-b9b8-d009db376bdb")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /MarioKart/Resources/Cone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/Cone.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_2D01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_2D01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_2E01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_2E01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_3501.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_3501.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_3801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_3801.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_3A01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_3A01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_3E01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_3E01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_3F01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_3F01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_4901.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_4901.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_5901.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_5901.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_6500.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_6500.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_6700.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_6700.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_6800.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_6800.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_6B00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_6B00.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_6E00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_6E00.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_9101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_9101.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_9601.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_9601.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_9801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_9801.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_9901.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_9901.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_9B01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_9B01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_A401.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_A401.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_A501.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_A501.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_A601.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_A601.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_A701.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_A701.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_A801.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_A801.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_A901.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_A901.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_AC01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_AC01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_AF01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_AF01.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_B001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_B001.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_C900.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_C900.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_CB00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_CB00.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_CD00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_CD00.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_CE00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_CE00.png -------------------------------------------------------------------------------- /MarioKart/Resources/OBJ_CF00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/OBJ_CF00.png -------------------------------------------------------------------------------- /MarioKart/Resources/config_bctr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/config_bctr.png -------------------------------------------------------------------------------- /MarioKart/Resources/config_bss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/config_bss.png -------------------------------------------------------------------------------- /MarioKart/Resources/leaf-brown-pencil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/leaf-brown-pencil.png -------------------------------------------------------------------------------- /MarioKart/Resources/start.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/MarioKart/Resources/start.png -------------------------------------------------------------------------------- /MarioKart/UI/KclWorking.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | using System.Windows.Forms; 10 | 11 | namespace MarioKart.UI 12 | { 13 | public partial class KclWorking : Form 14 | { 15 | public MK7.KCL kcl; 16 | public bool result; 17 | MK7.KCL.BGArgs arg; 18 | public KclWorking(MK7.KCL kcl, string filename) 19 | { 20 | this.kcl = kcl; 21 | arg = new MK7.KCL.BGArgs(); 22 | arg.filename = filename; 23 | InitializeComponent(); 24 | progressBar1.Style = ProgressBarStyle.Marquee; 25 | } 26 | 27 | private void kclBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) 28 | { 29 | result = kcl.BackGroundWorkerTask(sender as System.ComponentModel.BackgroundWorker, e.Argument); 30 | } 31 | 32 | private void updateInfo() 33 | { 34 | progressBar1.Style = ProgressBarStyle.Continuous; 35 | progress_label.Text = "Step: " + arg.state + "/2; Progress: " + arg.currProg + "/" + arg.totProg; 36 | if (progressBar1.Maximum != arg.totProg) { progressBar1.Maximum = arg.totProg; progressBar1.Value = 0; } 37 | progressBar1.PerformStep(); 38 | } 39 | 40 | private void kclBackgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) 41 | { 42 | updateInfo(); 43 | } 44 | 45 | private void kclBackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 46 | { 47 | if (result) 48 | { 49 | DialogResult = DialogResult.OK; 50 | } else 51 | { 52 | DialogResult = DialogResult.Cancel; 53 | } 54 | } 55 | 56 | private void KclWorking_Shown(object sender, EventArgs e) 57 | { 58 | if (kclBackgroundWorker.IsBusy != true) 59 | { 60 | kclBackgroundWorker.RunWorkerAsync(arg); 61 | } 62 | } 63 | 64 | private void cancel_btn_Click(object sender, EventArgs e) 65 | { 66 | if (kclBackgroundWorker.WorkerSupportsCancellation) 67 | { 68 | kclBackgroundWorker.CancelAsync(); 69 | } 70 | } 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /MarioKart/UI/MapViewer/MKDSAreaRenderGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using MarioKart.MKDS.NKM; 6 | using System.Drawing; 7 | using Tao.OpenGl; 8 | using LibEveryFileExplorer.Collections; 9 | 10 | namespace MarioKart.UI.MapViewer 11 | { 12 | public class MKDSAreaRenderGroup : RenderGroup 13 | { 14 | AREA Areas; 15 | 16 | public MKDSAreaRenderGroup(AREA Areas, Color AreaColor) 17 | { 18 | this.Areas = Areas; 19 | this.AreaColor = AreaColor; 20 | } 21 | 22 | public Color AreaColor { get; private set; } 23 | 24 | public override bool Interactable { get { return false; } } 25 | 26 | public override void Render(object[] Selection, bool Picking, int PickingId) 27 | { 28 | if (Picking) return; 29 | Gl.glColor4f(AreaColor.R / 255f, AreaColor.G / 255f, AreaColor.B / 255f, AreaColor.A / 255f); 30 | Gl.glBegin(Gl.GL_QUADS); 31 | foreach (var o in Areas.Entries) 32 | { 33 | Vector3[] cube = o.GetCube(); 34 | //We're interested in points 0, 1, 5 and 3 (ground plane) 35 | Vector3 Point1 = cube[3]; 36 | Vector3 Point2 = cube[5]; 37 | Vector3 Point3 = cube[1]; 38 | Vector3 Point4 = cube[0]; 39 | Gl.glVertex2f(Point1.X, Point1.Z); 40 | Gl.glVertex2f(Point2.X, Point2.Z); 41 | Gl.glVertex2f(Point3.X, Point3.Z); 42 | Gl.glVertex2f(Point4.X, Point4.Z); 43 | } 44 | Gl.glEnd(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /MarioKart/UI/MapViewer/MKDSCheckPointPoint1RenderGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using MarioKart.MKDS.NKM; 6 | using LibEveryFileExplorer.Collections; 7 | using System.Drawing; 8 | using Tao.OpenGl; 9 | 10 | namespace MarioKart.UI.MapViewer 11 | { 12 | public class MKDSCheckPointPoint1RenderGroup : RenderGroup 13 | { 14 | CPOI Checkpoints; 15 | 16 | public MKDSCheckPointPoint1RenderGroup(CPOI Checkpoints, Color PointColor) 17 | { 18 | this.Checkpoints = Checkpoints; 19 | this.PointColor = PointColor; 20 | } 21 | 22 | public Color PointColor { get; private set; } 23 | 24 | public override bool Interactable { get { return true; } } 25 | 26 | public override void Render(object[] Selection, bool Picking, int PickingId) 27 | { 28 | Gl.glPointSize((Picking ? 6f : 5)); 29 | 30 | Gl.glBegin(Gl.GL_POINTS); 31 | if (!Picking) Gl.glColor3f(PointColor.R / 255f, PointColor.G / 255f, PointColor.B / 255f); 32 | int objidx = 1; 33 | foreach (var o in Checkpoints.Entries) 34 | { 35 | if (Picking) 36 | { 37 | Color c = Color.FromArgb(objidx | PickingId); 38 | Gl.glColor4f(c.R / 255f, c.G / 255f, c.B / 255f, 1); 39 | objidx++; 40 | } 41 | Gl.glVertex2f(o.Point1.X, o.Point1.Y); 42 | } 43 | Gl.glEnd(); 44 | } 45 | 46 | public override object GetEntry(int Index) 47 | { 48 | return Checkpoints[Index]; 49 | } 50 | 51 | public override Vector3 GetPosition(int Index) 52 | { 53 | return new Vector3(Checkpoints[Index].Point1.X, 0, Checkpoints[Index].Point1.Y); 54 | } 55 | 56 | public override void SetPosition(int Index, Vector3 Position, bool ValidY = false) 57 | { 58 | Checkpoints[Index].Point1 = new Vector2(Position.X, Position.Z); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /MarioKart/UI/MapViewer/MKDSCheckPointPoint2RenderGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using MarioKart.MKDS.NKM; 6 | using LibEveryFileExplorer.Collections; 7 | using System.Drawing; 8 | using Tao.OpenGl; 9 | 10 | namespace MarioKart.UI.MapViewer 11 | { 12 | public class MKDSCheckPointPoint2RenderGroup : RenderGroup 13 | { 14 | CPOI Checkpoints; 15 | 16 | public MKDSCheckPointPoint2RenderGroup(CPOI Checkpoints, Color PointColor) 17 | { 18 | this.Checkpoints = Checkpoints; 19 | this.PointColor = PointColor; 20 | } 21 | 22 | public Color PointColor { get; private set; } 23 | 24 | public override bool Interactable 25 | { 26 | get { return true; } 27 | } 28 | 29 | public override void Render(object[] Selection, bool Picking, int PickingId) 30 | { 31 | Gl.glPointSize((Picking ? 6f : 5)); 32 | 33 | Gl.glBegin(Gl.GL_POINTS); 34 | if (!Picking) Gl.glColor3f(PointColor.R / 255f, PointColor.G / 255f, PointColor.B / 255f); 35 | int objidx = 1; 36 | foreach (var o in Checkpoints.Entries) 37 | { 38 | if (Picking) 39 | { 40 | Color c = Color.FromArgb(objidx | PickingId); 41 | Gl.glColor4f(c.R / 255f, c.G / 255f, c.B / 255f, 1); 42 | objidx++; 43 | } 44 | Gl.glVertex2f(o.Point2.X, o.Point2.Y); 45 | } 46 | Gl.glEnd(); 47 | } 48 | 49 | public override object GetEntry(int Index) 50 | { 51 | return Checkpoints[Index]; 52 | } 53 | 54 | public override Vector3 GetPosition(int Index) 55 | { 56 | return new Vector3(Checkpoints[Index].Point2.X, 0, Checkpoints[Index].Point2.Y); 57 | } 58 | 59 | public override void SetPosition(int Index, Vector3 Position, bool ValidY = false) 60 | { 61 | Checkpoints[Index].Point2 = new Vector2(Position.X, Position.Z); 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /MarioKart/UI/MapViewer/MKDSRouteLineRenderGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using MarioKart.MKDS.NKM; 6 | using LibEveryFileExplorer.Collections; 7 | using System.Drawing; 8 | using Tao.OpenGl; 9 | 10 | namespace MarioKart.UI.MapViewer 11 | { 12 | public class MKDSRouteLineRenderGroup : RenderGroup 13 | { 14 | PATH Paths; 15 | POIT Points; 16 | 17 | public MKDSRouteLineRenderGroup(PATH Paths, POIT Points, Color LineColor) 18 | { 19 | this.Paths = Paths; 20 | this.Points = Points; 21 | this.LineColor = LineColor; 22 | } 23 | 24 | public Color LineColor { get; private set; } 25 | 26 | public override bool Interactable { get { return false; } } 27 | 28 | public override void Render(object[] Selection, bool Picking, int PickingId) 29 | { 30 | if (Picking) return; 31 | Gl.glLineWidth(1.5f); 32 | Gl.glColor3f(LineColor.R / 255f, LineColor.G / 255f, LineColor.B / 255f); 33 | int idx = 0; 34 | foreach (var o in Paths.Entries) 35 | { 36 | if (Points.NrEntries < o.NrPoit + idx) break; 37 | Gl.glBegin(Gl.GL_LINE_STRIP); 38 | for (int i = 0; i < o.NrPoit; i++) 39 | { 40 | Gl.glVertex2f(Points[idx + i].Position.X, Points[idx + i].Position.Z); 41 | if (!(i + 1 < o.NrPoit) && o.Loop) 42 | { 43 | Gl.glVertex2f(Points[idx].Position.X, Points[idx].Position.Z); 44 | } 45 | } 46 | Gl.glEnd(); 47 | idx += o.NrPoit; 48 | } 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /MarioKart/UI/MapViewer/RenderGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Collections; 6 | 7 | namespace MarioKart.UI.MapViewer 8 | { 9 | public abstract class RenderGroup 10 | { 11 | //public abstract bool Createable { get; } 12 | public abstract bool Interactable { get; } 13 | 14 | public void Render(object[] Selection) 15 | { 16 | Render(Selection, false, -1); 17 | } 18 | 19 | public abstract void Render(object[] Selection, bool Picking, int PickingId); 20 | 21 | public virtual Object GetEntry(int Index) { throw new NotImplementedException(); } 22 | 23 | public virtual Vector3 GetPosition(int Index) { throw new NotImplementedException(); } 24 | public virtual void SetPosition(int Index, Vector3 Position, bool ValidY = false) { throw new NotImplementedException(); } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /NDS/MODS.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using System.Windows.Forms; 8 | 9 | namespace NDS 10 | { 11 | public class MODS:FileFormat, IViewable 12 | { 13 | public Form GetDialog() 14 | { 15 | return new Form(); 16 | } 17 | 18 | public class MODSIdentifier : FileFormatIdentifier 19 | { 20 | public override string GetCategory() 21 | { 22 | return Category_Movies; 23 | 24 | } 25 | 26 | public override string GetFileDescription() 27 | { 28 | return "DS Mobiclip Video Files (MODS)"; 29 | } 30 | 31 | public override string GetFileFilter() 32 | { 33 | return "DS Mobiclip Video Files (*.mods)|*.mods"; 34 | } 35 | 36 | public override Bitmap GetIcon() 37 | { 38 | return null; 39 | } 40 | 41 | public override FormatMatch IsFormat(EFEFile File) 42 | { 43 | if (File.Data.Length > 6 && File.Data[0] == 'M' && File.Data[1] == 'O' && File.Data[2] == 'D' && File.Data[3] == 'S' && File.Data[4] == 'N' && File.Data[5] == '3') return FormatMatch.Content; 44 | return FormatMatch.No; 45 | } 46 | 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /NDS/NDSPlugin.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer; 6 | using LibEveryFileExplorer.Script; 7 | using System.IO; 8 | using CommonFiles; 9 | using LibEveryFileExplorer.IO; 10 | 11 | namespace NDS 12 | { 13 | public class NDSPlugin : EFEPlugin 14 | { 15 | public override void OnLoad() 16 | { 17 | 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /NDS/NitroSystem/FONT/NFTR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using System.Windows.Forms; 8 | 9 | namespace NDS.NitroSystem.FONT 10 | { 11 | public class NFTR:FileFormat, IViewable 12 | { 13 | public Form GetDialog() 14 | { 15 | return new Form(); 16 | } 17 | 18 | public class NFTRIdentifier : FileFormatIdentifier 19 | { 20 | public override string GetCategory() 21 | { 22 | return Category_Fonts; 23 | } 24 | 25 | public override string GetFileDescription() 26 | { 27 | return "Nitro Fonts Resources (NFTR)"; 28 | } 29 | 30 | public override string GetFileFilter() 31 | { 32 | return "Nitro Fonts Resources (*.nftr)|*.nftr"; 33 | } 34 | 35 | public override Bitmap GetIcon() 36 | { 37 | return null; 38 | } 39 | 40 | public override FormatMatch IsFormat(EFEFile File) 41 | { 42 | if (File.Data.Length > 4 && File.Data[0] == 'R' && File.Data[1] == 'T' && File.Data[2] == 'F' && File.Data[3] == 'N') return FormatMatch.Content; 43 | return FormatMatch.No; 44 | } 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G2D/NANR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G2D 9 | { 10 | public class NANR:FileFormat 11 | { 12 | public class NANRIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Animation Resources (NANR)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Animation Resources (*.nanr)|*.nanr"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return null; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'R' && File.Data[1] == 'N' && File.Data[2] == 'A' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G2D/NCER.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G2D 9 | { 10 | public class NCER: FileFormat 11 | { 12 | public class NCERIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Cells; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Cells For Runtime (NCER)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Cells For Runtime (*.NCER)|*.NCER"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return null; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'R' && File.Data[1] == 'E' && File.Data[2] == 'C' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G2D/NCGR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G2D 9 | { 10 | public class NCGR:FileFormat 11 | { 12 | public class NCGRIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Graphics; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Character Graphics For Runtime (NCGR)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Character Graphics For Runtime (*.ncgr)|*.ncgr"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.image; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'R' && File.Data[1] == 'G' && File.Data[2] == 'C' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G2D/NSCR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G2D 9 | { 10 | public class NSCR: FileFormat 11 | { 12 | public class NSCRIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Screens; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Screen For Runtime (NSCR)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Screen For Runtime (*.nscr)|*.nscr"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.map; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'R' && File.Data[1] == 'C' && File.Data[2] == 'S' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G3D/NSBCA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G3D 9 | { 10 | public class NSBCA : FileFormat 11 | { 12 | public class NSBCAIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro System Binary Character Animation (NSBCA)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro System Binary Character Animation (*.nsbca)|*.nsbca"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.lollypopanim; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'B' && File.Data[1] == 'C' && File.Data[2] == 'A' && File.Data[3] == '0') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G3D/NSBMA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G3D 9 | { 10 | public class NSBMA : FileFormat 11 | { 12 | public class NSBMAIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro System Binary Material Animation (NSBMA)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro System Binary Material Animation (*.nsbma)|*.nsbma"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.traffic_light_anim; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'B' && File.Data[1] == 'M' && File.Data[2] == 'A' && File.Data[3] == '0') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G3D/NSBTA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G3D 9 | { 10 | public class NSBTA : FileFormat 11 | { 12 | public class NSBTAIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro System Binary Texture Animation (NSBTA)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro System Binary Texture Animation (*.nsbta)|*.nsbta"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.sunset_vertical; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'B' && File.Data[1] == 'T' && File.Data[2] == 'A' && File.Data[3] == '0') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G3D/NSBTP.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G3D 9 | { 10 | public class NSBTP: FileFormat 11 | { 12 | public class NSBTPIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro System Binary Texture Particles (NSBTP)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro System Binary Texture Particles (*.nsbtp)|*.nsbtp"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.stack; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'B' && File.Data[1] == 'T' && File.Data[2] == 'P' && File.Data[3] == '0') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/G3D/NSBVA .cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.G3D 9 | { 10 | public class NSBVA : FileFormat 11 | { 12 | public class NSBVAIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro System Binary Visibility Animation (NSBVA)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro System Binary Visibility Animation (*.nsbva)|*.nsbva"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.truck_anim; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'B' && File.Data[1] == 'V' && File.Data[2] == 'A' && File.Data[3] == '0') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SBNK.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.SND 9 | { 10 | public class SBNK : FileFormat 11 | { 12 | public class SBNKIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return null; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Sound Bank (SBNK)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Sound Bank (*.sbnk)|*.sbnk"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.guitar; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'S' && File.Data[1] == 'B' && File.Data[2] == 'N' && File.Data[3] == 'K') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SSAR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.SND 9 | { 10 | public class SSAR : FileFormat 11 | { 12 | public class SSARIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return null; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Sound Archive (SSAR)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Sound Archive (*.ssar)|*.ssar"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.note_box; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'S' && File.Data[1] == 'S' && File.Data[2] == 'A' && File.Data[3] == 'R') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SSEQDecoder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NDS.NitroSystem.SND 4 | { 5 | public class SSEQDecoder 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SSEQEncoder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NDS.NitroSystem.SND 4 | { 5 | public class SSEQEncoder 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SSEQEvent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using NAudio.Midi; 6 | 7 | namespace NDS.NitroSystem.SND 8 | { 9 | public class SSEQEvent 10 | { 11 | public int Type; 12 | public byte[] Params; 13 | public SSEQEvent(int Type, byte[] Params) 14 | { 15 | this.Type = Type; 16 | this.Params = Params; 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SSEQMidiResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NDS.NitroSystem.SND 4 | { 5 | public class SSEQMidiResult 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SSEQTrack.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace NDS.NitroSystem.SND 4 | { 5 | public class SSEQTrack 6 | { 7 | } 8 | } -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/STRM.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS.NitroSystem.SND 9 | { 10 | public class STRM : FileFormat 11 | { 12 | public class STRMIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return null; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Nitro Sound Stream (STRM)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Nitro Sound Stream (*.strm)|*.strm"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return Resource.speaker; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'S' && File.Data[1] == 'T' && File.Data[2] == 'R' && File.Data[3] == 'M') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SWAR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using LibEveryFileExplorer.IO; 8 | using LibEveryFileExplorer.IO.Serialization; 9 | 10 | namespace NDS.NitroSystem.SND 11 | { 12 | public class SWAR : FileFormat//, IViewable 13 | { 14 | public SWARHeader Header; 15 | public class SWARHeader 16 | { 17 | public SWARHeader(EndianBinaryReaderEx er) 18 | { 19 | er.ReadObject(this); 20 | } 21 | [BinaryStringSignature("SWAR")] 22 | [BinaryFixedSize(4)] 23 | public String Signature; 24 | [BinaryBOM(0xFFFE)] 25 | public UInt16 Endianness; 26 | public UInt16 Version; 27 | public UInt32 FileSize; 28 | public UInt16 HeaderSize; 29 | public UInt16 NrBlocks; 30 | } 31 | 32 | public DATA Data; 33 | public class DATA 34 | { 35 | public DATA(EndianBinaryReaderEx er) 36 | { 37 | er.ReadObject(this); 38 | WaveInfoOffsets = er.ReadUInt32s((int)NrWaves); 39 | 40 | } 41 | [BinaryStringSignature("DATA")] 42 | [BinaryFixedSize(4)] 43 | public String Signature; 44 | public UInt32 SectionSize; 45 | [BinaryFixedSize(32)] 46 | public Byte[] Padding; 47 | public UInt32 NrWaves; 48 | [BinaryIgnore] 49 | public UInt32[] WaveInfoOffsets; 50 | } 51 | public class SWARIdentifier : FileFormatIdentifier 52 | { 53 | public override string GetCategory() 54 | { 55 | return Category_Archives; 56 | } 57 | 58 | public override string GetFileDescription() 59 | { 60 | return "Nitro Sound Wave Archive (SWAR)"; 61 | } 62 | 63 | public override string GetFileFilter() 64 | { 65 | return "Nitro Sound Wave Archive (*.swar)|*.swar"; 66 | } 67 | 68 | public override Bitmap GetIcon() 69 | { 70 | return Resource.speaker2_box; 71 | } 72 | 73 | public override FormatMatch IsFormat(EFEFile File) 74 | { 75 | if (File.Data.Length > 4 && File.Data[0] == 'S' && File.Data[1] == 'W' && File.Data[2] == 'A' && File.Data[3] == 'R') return FormatMatch.Content; 76 | return FormatMatch.No; 77 | } 78 | 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /NDS/NitroSystem/SND/SWAV.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.IO; 6 | using LibEveryFileExplorer.IO.Serialization; 7 | using LibEveryFileExplorer.Files; 8 | using System.Drawing; 9 | 10 | namespace NDS.NitroSystem.SND 11 | { 12 | public class SWAV:FileFormat//, IViewable 13 | { 14 | public SWAVHeader Header; 15 | public class SWAVHeader 16 | { 17 | public SWAVHeader(EndianBinaryReaderEx er) 18 | { 19 | er.ReadObject(this); 20 | } 21 | [BinaryStringSignature("SWAV")] 22 | [BinaryFixedSize(4)] 23 | public String Signature; 24 | [BinaryBOM(0xFFFE)] 25 | public UInt16 Endianness; 26 | public UInt16 Version; 27 | public UInt32 FileSize; 28 | public UInt16 HeaderSize; 29 | public UInt16 NrBlocks; 30 | } 31 | public class SWAVIdentifier : FileFormatIdentifier 32 | { 33 | public override string GetCategory() 34 | { 35 | return null; 36 | } 37 | 38 | public override string GetFileDescription() 39 | { 40 | return "Nitro Sound Wave (SWAV)"; 41 | } 42 | 43 | public override string GetFileFilter() 44 | { 45 | return "Nitro Sound Wave (*.swav)|*.swav"; 46 | } 47 | 48 | public override Bitmap GetIcon() 49 | { 50 | return Resource.speaker2_box; 51 | } 52 | 53 | public override FormatMatch IsFormat(EFEFile File) 54 | { 55 | if (File.Data.Length > 4 && File.Data[0] == 'S' && File.Data[1] == 'W' && File.Data[2] == 'A' && File.Data[3] == 'V') return FormatMatch.Content; 56 | return FormatMatch.No; 57 | } 58 | 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /NDS/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Nintendo DS Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("36c51fde-f0be-452c-adcc-2cbbc16a707b")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /NDS/Resources/color-swatch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/color-swatch.png -------------------------------------------------------------------------------- /NDS/Resources/color-swatches.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/color-swatches.png -------------------------------------------------------------------------------- /NDS/Resources/color_swatch1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/color_swatch1.png -------------------------------------------------------------------------------- /NDS/Resources/disc_music.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/disc_music.png -------------------------------------------------------------------------------- /NDS/Resources/fruit-grape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/fruit-grape.png -------------------------------------------------------------------------------- /NDS/Resources/fruit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/fruit.png -------------------------------------------------------------------------------- /NDS/Resources/guitar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/guitar.png -------------------------------------------------------------------------------- /NDS/Resources/image-sunset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/image-sunset.png -------------------------------------------------------------------------------- /NDS/Resources/image-sunset16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/image-sunset16.png -------------------------------------------------------------------------------- /NDS/Resources/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/image.png -------------------------------------------------------------------------------- /NDS/Resources/images-stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/images-stack.png -------------------------------------------------------------------------------- /NDS/Resources/jar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/jar.png -------------------------------------------------------------------------------- /NDS/Resources/leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/leaf.png -------------------------------------------------------------------------------- /NDS/Resources/lollypopanim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/lollypopanim.png -------------------------------------------------------------------------------- /NDS/Resources/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/map.png -------------------------------------------------------------------------------- /NDS/Resources/molecule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/molecule.png -------------------------------------------------------------------------------- /NDS/Resources/node.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/node.png -------------------------------------------------------------------------------- /NDS/Resources/note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/note.png -------------------------------------------------------------------------------- /NDS/Resources/note_box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/note_box.png -------------------------------------------------------------------------------- /NDS/Resources/point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/point.png -------------------------------------------------------------------------------- /NDS/Resources/script_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/script_text.png -------------------------------------------------------------------------------- /NDS/Resources/speaker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/speaker.png -------------------------------------------------------------------------------- /NDS/Resources/speaker2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/speaker2.png -------------------------------------------------------------------------------- /NDS/Resources/speaker2_box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/speaker2_box.png -------------------------------------------------------------------------------- /NDS/Resources/stack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/stack.png -------------------------------------------------------------------------------- /NDS/Resources/sunset_vertical.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/sunset_vertical.png -------------------------------------------------------------------------------- /NDS/Resources/traffic_light_anim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/traffic_light_anim.png -------------------------------------------------------------------------------- /NDS/Resources/truck_anim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/truck_anim.png -------------------------------------------------------------------------------- /NDS/Resources/water.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/NDS/Resources/water.png -------------------------------------------------------------------------------- /NDS/SND/IMAADPCMConst.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace NDS.SND 7 | { 8 | public class IMAADPCMConst 9 | { 10 | public static readonly int[] IndexTable = 11 | { 12 | -1, -1, -1, -1, 2, 4, 6, 8, 13 | -1, -1, -1, -1, 2, 4, 6, 8 14 | }; 15 | 16 | public static readonly int[] StepTable = 17 | { 18 | 7, 8, 9, 10, 11, 12, 13, 14, 19 | 16, 17, 19, 21, 23, 25, 28, 20 | 31, 34, 37, 41, 45, 50, 55, 21 | 60, 66, 73, 80, 88, 97, 107, 22 | 118, 130, 143, 157, 173, 190, 209, 23 | 230, 253, 279, 307, 337, 371, 408, 24 | 449, 494, 544, 598, 658, 724, 796, 25 | 876, 963, 1060, 1166, 1282, 1411, 1552, 26 | 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327, 3660, 4026, 27 | 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 28 | 9493, 10442, 11487, 12635, 13899, 15289, 16818, 29 | 18500, 20350, 22385, 24623, 27086, 29794, 32767 30 | }; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /NDS/SND/IMAADPCMDecoder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.IO; 6 | using LibEveryFileExplorer.Math; 7 | 8 | namespace NDS.SND 9 | { 10 | public class IMAADPCMDecoder 11 | { 12 | private bool IsInit = false; 13 | private int Last; 14 | private int Index; 15 | 16 | public IMAADPCMDecoder() { } 17 | 18 | public Int16[] GetWaveData(byte[] Data, int Offset, int Length) 19 | { 20 | List DataOut = new List(); 21 | if (!IsInit) 22 | { 23 | Last = IOUtil.ReadS16LE(Data, Offset); 24 | Index = IOUtil.ReadS16LE(Data, Offset + 2) & 0x7F; 25 | Offset += 4; 26 | Length -= 4; 27 | DataOut.Add((short)Last); 28 | IsInit = true; 29 | } 30 | int end = Offset + Length; 31 | while (Offset < end) 32 | { 33 | byte sampd = Data[Offset++]; 34 | for (int i = 0; i < 2; i++) 35 | { 36 | int val = (sampd >> (i * 4)) & 0xF; 37 | 38 | int diff = 39 | IMAADPCMConst.StepTable[Index] / 8 + 40 | IMAADPCMConst.StepTable[Index] / 4 * ((val >> 0) & 1) + 41 | IMAADPCMConst.StepTable[Index] / 2 * ((val >> 1) & 1) + 42 | IMAADPCMConst.StepTable[Index] * ((val >> 2) & 1); 43 | 44 | int samp = Last + diff * ((((val >> 3) & 1) == 1) ? -1 : 1); 45 | Last = (short)MathUtil.Clamp(samp, short.MinValue, short.MaxValue); 46 | Index = (short)MathUtil.Clamp(Index + IMAADPCMConst.IndexTable[val & 7], 0, 88); 47 | DataOut.Add((short)Last); 48 | } 49 | } 50 | return DataOut.ToArray(); 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /NDS/SPA.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using LibEveryFileExplorer.IO; 8 | 9 | namespace NDS 10 | { 11 | public class SPA:FileFormat 12 | { 13 | public class SPAIdentifier : FileFormatIdentifier 14 | { 15 | public override string GetCategory() 16 | { 17 | return Category_Particles; 18 | } 19 | 20 | public override string GetFileDescription() 21 | { 22 | return "Nitro System Particles Archive (SPA)"; 23 | } 24 | 25 | public override string GetFileFilter() 26 | { 27 | return "Nitro System Particles Archive (*.spa)|*.spa"; 28 | } 29 | 30 | public override Bitmap GetIcon() 31 | { 32 | return Resource.water; 33 | } 34 | 35 | public override FormatMatch IsFormat(EFEFile File) 36 | { 37 | if (File.Data.Length > 3 && File.Data[1] == 'A' && File.Data[2] == 'P' && File.Data[3] == 'S') return FormatMatch.Content; 38 | return FormatMatch.No; 39 | } 40 | 41 | } 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /NDS/UI/BMGViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace NDS.UI 11 | { 12 | public partial class BMGViewer : Form 13 | { 14 | BMG Strings; 15 | public BMGViewer(BMG Strings) 16 | { 17 | this.Strings = Strings; 18 | InitializeComponent(); 19 | } 20 | 21 | public BMGViewer() 22 | { 23 | InitializeComponent(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /NDS/UI/MDL0Viewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace NDS.UI 2 | { 3 | partial class MDL0Viewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.simpleOpenGlControl1 = new Tao.Platform.Windows.SimpleOpenGlControl(); 32 | this.SuspendLayout(); 33 | // 34 | // simpleOpenGlControl1 35 | // 36 | this.simpleOpenGlControl1.AccumBits = ((byte)(0)); 37 | this.simpleOpenGlControl1.AutoCheckErrors = false; 38 | this.simpleOpenGlControl1.AutoFinish = false; 39 | this.simpleOpenGlControl1.AutoMakeCurrent = true; 40 | this.simpleOpenGlControl1.AutoSwapBuffers = true; 41 | this.simpleOpenGlControl1.BackColor = System.Drawing.Color.Black; 42 | this.simpleOpenGlControl1.ColorBits = ((byte)(32)); 43 | this.simpleOpenGlControl1.DepthBits = ((byte)(32)); 44 | this.simpleOpenGlControl1.Dock = System.Windows.Forms.DockStyle.Fill; 45 | this.simpleOpenGlControl1.Location = new System.Drawing.Point(0, 0); 46 | this.simpleOpenGlControl1.Name = "simpleOpenGlControl1"; 47 | this.simpleOpenGlControl1.Size = new System.Drawing.Size(462, 357); 48 | this.simpleOpenGlControl1.StencilBits = ((byte)(8)); 49 | this.simpleOpenGlControl1.TabIndex = 1; 50 | // 51 | // MDL0Viewer 52 | // 53 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 54 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 55 | this.Controls.Add(this.simpleOpenGlControl1); 56 | this.DoubleBuffered = true; 57 | this.Name = "MDL0Viewer"; 58 | this.Size = new System.Drawing.Size(462, 357); 59 | this.Load += new System.EventHandler(this.MDL0Viewer_Load); 60 | this.ResumeLayout(false); 61 | 62 | } 63 | 64 | #endregion 65 | 66 | private Tao.Platform.Windows.SimpleOpenGlControl simpleOpenGlControl1; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /NDS/UI/NDSProjectDialog.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using System.IO; 10 | 11 | namespace NDS.UI 12 | { 13 | public partial class NDSProjectDialog : Form 14 | { 15 | public String ProjectName { get; private set; } 16 | public String ProjectDir { get; private set; } 17 | public String NDSPath { get; private set; } 18 | 19 | public NDSProjectDialog() 20 | { 21 | InitializeComponent(); 22 | openFileDialog1.Filter = Nitro.NDS.Identifier.GetFileFilter(); 23 | } 24 | 25 | private void NDSProjectDialog_Load(object sender, EventArgs e) 26 | { 27 | 28 | } 29 | 30 | private void button3_Click(object sender, EventArgs e) 31 | { 32 | if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK 33 | && folderBrowserDialog1.SelectedPath.Length > 0) 34 | { 35 | if (new DirectoryInfo(folderBrowserDialog1.SelectedPath).GetFileSystemInfos().Length > 0) 36 | { 37 | MessageBox.Show("Please select an empty directory!"); 38 | return; 39 | } 40 | ProjectDir = folderBrowserDialog1.SelectedPath; 41 | UpdatePaths(); 42 | } 43 | } 44 | 45 | private void button4_Click(object sender, EventArgs e) 46 | { 47 | if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK 48 | && openFileDialog1.FileName.Length > 0) 49 | { 50 | NDSPath = openFileDialog1.FileName; 51 | UpdatePaths(); 52 | } 53 | } 54 | 55 | void UpdatePaths() 56 | { 57 | textBox1.Text = ProjectDir; 58 | textBox2.Text = NDSPath; 59 | if (ProjectDir != null && ProjectDir.Length > 0 && NDSPath != null && NDSPath.Length > 0 && ProjectName != null && ProjectName.Length > 0) 60 | button2.Enabled = true; 61 | else button2.Enabled = false; 62 | } 63 | 64 | private void textBox3_TextChanged(object sender, EventArgs e) 65 | { 66 | ProjectName = textBox3.Text; 67 | UpdatePaths(); 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /NDS/UI/NSBTXViewer.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace NDS.UI 2 | { 3 | partial class NSBTXViewer 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.SuspendLayout(); 32 | // 33 | // NSBTXViewer 34 | // 35 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 37 | this.ClientSize = new System.Drawing.Size(667, 368); 38 | this.Name = "NSBTXViewer"; 39 | this.Text = "NSBTXViewer"; 40 | this.Load += new System.EventHandler(this.NSBTXViewer_Load); 41 | this.ResumeLayout(false); 42 | 43 | } 44 | 45 | #endregion 46 | } 47 | } -------------------------------------------------------------------------------- /NDS/UI/NSBTXViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using NDS.NitroSystem.G3D; 10 | 11 | namespace NDS.UI 12 | { 13 | public partial class NSBTXViewer : Form 14 | { 15 | NSBTX Textures; 16 | public NSBTXViewer(NSBTX Textures) 17 | { 18 | this.Textures = Textures; 19 | InitializeComponent(); 20 | Controls.Add(new TEX0Viewer(Textures.TexPlttSet) { Dock = DockStyle.Fill }); 21 | } 22 | 23 | private void NSBTXViewer_Load(object sender, EventArgs e) 24 | { 25 | 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /NDS/UI/Projects/BannerTabPage.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace NDS.UI.Projects 2 | { 3 | partial class BannerTabPage 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Component Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.SuspendLayout(); 32 | // 33 | // BannerTabPage 34 | // 35 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 36 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 37 | this.Name = "BannerTabPage"; 38 | this.Size = new System.Drawing.Size(348, 342); 39 | this.ResumeLayout(false); 40 | 41 | } 42 | 43 | #endregion 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /NDS/UI/Projects/BannerTabPage.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | 10 | namespace NDS.UI.Projects 11 | { 12 | public partial class BannerTabPage : UserControl 13 | { 14 | public BannerTabPage() 15 | { 16 | InitializeComponent(); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /NDS/UI/TEX0Viewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Drawing; 5 | using System.Data; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using NDS.NitroSystem.G3D; 10 | using System.Drawing.Imaging; 11 | 12 | namespace NDS.UI 13 | { 14 | public partial class TEX0Viewer : UserControl 15 | { 16 | TEX0 Textures; 17 | public TEX0Viewer(TEX0 Textures) 18 | { 19 | this.Textures = Textures; 20 | InitializeComponent(); 21 | } 22 | 23 | private void TEX0Viewer_Load(object sender, EventArgs e) 24 | { 25 | listBox1.BeginUpdate(); 26 | listBox1.Items.Clear(); 27 | for (int i = 0; i < Textures.dictTex.numEntry; i++) 28 | { 29 | listBox1.Items.Add(Textures.dictTex[i].Key); 30 | } 31 | listBox1.EndUpdate(); 32 | listBox2.BeginUpdate(); 33 | listBox2.Items.Clear(); 34 | for (int i = 0; i < Textures.dictPltt.numEntry; i++) 35 | { 36 | listBox2.Items.Add(Textures.dictPltt[i].Key); 37 | } 38 | listBox2.EndUpdate(); 39 | if (Textures.dictTex.numEntry != 0) listBox1.SelectedIndex = 0; 40 | } 41 | 42 | private void listBox1_SelectedIndexChanged(object sender, EventArgs e) 43 | { 44 | var tex = Textures.dictTex[listBox1.SelectedIndex].Value; 45 | if (tex.Fmt != GPU.Textures.ImageFormat.DIRECT && listBox2.SelectedIndices.Count == 0) 46 | { 47 | if (Textures.dictPltt.numEntry != 0) listBox2.SelectedIndex = 0; 48 | return; 49 | } 50 | Bitmap b = null; 51 | try 52 | { 53 | b = tex.ToBitmap(Textures.dictPltt[listBox2.SelectedIndex].Value); 54 | toolStripButton1.Enabled = true;//export 55 | } 56 | catch 57 | { 58 | toolStripButton1.Enabled = false;//export 59 | } 60 | finally { pictureBox1.Image = b; } 61 | } 62 | 63 | private void toolStripButton1_Click(object sender, EventArgs e) 64 | { 65 | saveFileDialog1.FileName = Textures.dictTex[listBox1.SelectedIndex].Key + ".png"; 66 | if (saveFileDialog1.ShowDialog() == DialogResult.OK 67 | && saveFileDialog1.FileName.Length > 0) 68 | { 69 | pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Png); 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /NDS/VX.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace NDS 9 | { 10 | public class VX:FileFormat 11 | { 12 | public class VXIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Movies; 17 | 18 | } 19 | 20 | public override string GetFileDescription() 21 | { 22 | return "DS Mobiclip Video Files (VX)"; 23 | } 24 | 25 | public override string GetFileFilter() 26 | { 27 | return "DS Mobiclip Video Files (*.VX)|*.VX"; 28 | } 29 | 30 | public override Bitmap GetIcon() 31 | { 32 | return null; 33 | } 34 | 35 | public override FormatMatch IsFormat(EFEFile File) 36 | { 37 | if (File.Data.Length > 4 && File.Data[0] == 'V' && File.Data[1] == 'X' && File.Data[2] == 'D' && File.Data[3] == 'S') return FormatMatch.Content; 38 | return FormatMatch.No; 39 | } 40 | 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Every File Explorer 2 | =================== 3 | EFE Branch version (Sorry my programming is not good,Now a lot of code isn't perfect And there may be problems) 4 | 5 | # Compile 6 | Just open the project in Visual Studio, and build it,You must add references. 7 | 8 | Add references you can Correct Compile(The DLL that you need to add references is in the Libraries folder) 9 | ## Add references 10 | 3DS 11 | 12 | You must add Tao.Platform.Windows.dll,Tao.OpenGl.dll references to 3DS 13 | 14 | EveryFileExplorer 15 | 16 | You must add NAudio.dll references to EveryFileExplorer 17 | 18 | GCNWii 19 | 20 | You must add OpenTK.dll references to GCNWii 21 | 22 | MarioKart 23 | 24 | You must add Tao.Platform.Windows.dll,Tao.OpenGl.dll and Microsoft.VisualBasic.PowerPacks.Vs.dll references to MarioKart 25 | 26 | NDS 27 | 28 | You must add Tao.Platform.Windows.dll,Tao.OpenGl.dll,NAudio.dll to NDS. 29 | -------------------------------------------------------------------------------- /RuneFactory/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 有关程序集的一般信息由以下 6 | // 控制。更改这些特性值可修改 7 | // 与程序集关联的信息。 8 | [assembly: AssemblyTitle("RuneFactory")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("RuneFactory")] 13 | [assembly: AssemblyCopyright("Copyright © 2017")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // 将 ComVisible 设置为 false 会使此程序集中的类型 18 | //对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型 19 | //请将此类型的 ComVisible 特性设置为 true。 20 | [assembly: ComVisible(false)] 21 | 22 | // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 23 | [assembly: Guid("37450bfb-12a5-4a41-bbf0-dddd5bbc2a32")] 24 | 25 | // 程序集的版本信息由下列四个值组成: 26 | // 27 | // 主版本 28 | // 次版本 29 | // 生成号 30 | // 修订号 31 | // 32 | // 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号 33 | //通过使用 "*",如下所示: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /RuneFactory/RF3/rf3Archive.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using System.Windows.Forms; 8 | 9 | namespace RuneFactory.RF3 10 | { 11 | public class rf3Archive : FileFormat, IViewable 12 | { 13 | public Form GetDialog() 14 | { 15 | return new Form(); 16 | } 17 | public class rf3ArchiveIdentifier : FileFormatIdentifier 18 | { 19 | public override string GetCategory() 20 | { 21 | return "RuneFactory 3"; 22 | } 23 | 24 | public override string GetFileDescription() 25 | { 26 | return "Rune Factory 3 Archive (rf3Archive.arc)"; 27 | } 28 | 29 | public override string GetFileFilter() 30 | { 31 | return "Rune Factory 3 Archive (rf3Archive.arc)|rf3Archive.arc"; 32 | } 33 | 34 | public override Bitmap GetIcon() 35 | { 36 | return null; 37 | } 38 | 39 | public override FormatMatch IsFormat(EFEFile File) 40 | { 41 | if (File.Name.Equals("rf3Archive.arc")) 42 | return FormatMatch.Content; 43 | else 44 | return FormatMatch.No; 45 | } 46 | 47 | } 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /WiiU/NintendoWare/LYT2/FLAN.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace WiiU.NintendoWare.LYT2 9 | { 10 | public class FLAN : FileFormat 11 | { 12 | public class FLANIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Animations; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Cafe Layout Animation (FLAN)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Cafe Layout Animation (*.bflan)|*.bflan"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return null; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'F' && File.Data[1] == 'L' && File.Data[2] == 'A' && File.Data[3] == 'N') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /WiiU/NintendoWare/SND/FSAR.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | using System.Windows.Forms; 8 | 9 | namespace WiiU.NintendoWare.SND 10 | { 11 | public class FSAR : FileFormat//, IViewable 12 | { 13 | public class FSARIdentifier : FileFormatIdentifier 14 | { 15 | 16 | public override string GetCategory() 17 | { 18 | return Category_Sound; 19 | } 20 | 21 | public override string GetFileDescription() 22 | { 23 | return "Cafe Sound Archive (FSAR)"; 24 | } 25 | 26 | public override string GetFileFilter() 27 | { 28 | return "Cafe Sound Archive (*.bfsar)|*.bfsar"; 29 | } 30 | 31 | public override Bitmap GetIcon() 32 | { 33 | return null; 34 | } 35 | 36 | public override FormatMatch IsFormat(EFEFile File) 37 | { 38 | if (File.Data.Length > 10 && File.Data[0] == 'F' && File.Data[1] == 'S' && File.Data[2] == 'A' && File.Data[3] == 'R') return FormatMatch.Content; 39 | return FormatMatch.No; 40 | } 41 | 42 | } 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /WiiU/NintendoWare/SND/FWAV.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | using LibEveryFileExplorer.Files; 6 | using System.Drawing; 7 | 8 | namespace WiiU.NintendoWare.SND 9 | { 10 | public class FWAV:FileFormat 11 | { 12 | public class FWAVIdentifier : FileFormatIdentifier 13 | { 14 | public override string GetCategory() 15 | { 16 | return Category_Audio; 17 | } 18 | 19 | public override string GetFileDescription() 20 | { 21 | return "Cafe Wave (FWAV)"; 22 | } 23 | 24 | public override string GetFileFilter() 25 | { 26 | return "Cafe Wave (*.bfwav)|*.bfwav"; 27 | } 28 | 29 | public override Bitmap GetIcon() 30 | { 31 | return null; 32 | } 33 | 34 | public override FormatMatch IsFormat(EFEFile File) 35 | { 36 | if (File.Data.Length > 4 && File.Data[0] == 'F' && File.Data[1] == 'W' && File.Data[2] == 'A' && File.Data[3] == 'V') return FormatMatch.Content; 37 | return FormatMatch.No; 38 | } 39 | 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /WiiU/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("Wii U Plugin")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("Every File Explorer")] 13 | [assembly: AssemblyCopyright("Copyright © Florian Nouwt 2014-2015")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("5be0e6c0-4011-448c-9c62-4e91d82a4508")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("1.0.0.0")] 36 | [assembly: AssemblyFileVersion("1.0.0.0")] 37 | -------------------------------------------------------------------------------- /WiiU/Resources/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/WiiU/Resources/image.png -------------------------------------------------------------------------------- /WiiU/Resources/zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/WiiU/Resources/zone.png -------------------------------------------------------------------------------- /WiiU/UI/FLIMViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Forms; 3 | using WiiU.NintendoWare.LYT2; 4 | using System.IO; 5 | using System.Drawing.Imaging; 6 | using static WiiU.NintendoWare.LYT2.FLIM; 7 | 8 | 9 | namespace WiiU.UI 10 | { 11 | public partial class FLIMViewer : Form 12 | { 13 | FLIM Image; 14 | public FLIMViewer(FLIM Image) 15 | { 16 | this.Image = Image; 17 | InitializeComponent(); 18 | } 19 | 20 | private void FLIMViewer_Load(object sender, EventArgs e) 21 | { 22 | pictureBox1.Image = Image.ToBitmap(); 23 | } 24 | 25 | private void toolStripButton1_Click(object sender, EventArgs e) 26 | { 27 | 28 | } 29 | 30 | private void toolStripButton2_Click(object sender, EventArgs e) 31 | { 32 | 33 | } 34 | 35 | private void toolStripButton3_Click(object sender, EventArgs e) 36 | { 37 | 38 | 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /WiiU/UI/FLYTViewer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Linq; 7 | using System.Text; 8 | using System.Windows.Forms; 9 | using WiiU.NintendoWare.LYT2; 10 | using _3DS.NintendoWare.LYT1; 11 | 12 | namespace WiiU.UI 13 | { 14 | public partial class FLYTViewer : Form 15 | { 16 | bool init = false; 17 | FLYT NWLayout; 18 | FLIM[] Textures; 19 | 20 | public FLYTViewer(FLYT Layout) 21 | { 22 | this.NWLayout = Layout; 23 | InitializeComponent(); 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Core.1.1.0.0/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Core.1.1.0.0/.signature.p7s -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Core.1.1.0.0/Microsoft.WindowsAPICodePack-Core.1.1.0.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Core.1.1.0.0/Microsoft.WindowsAPICodePack-Core.1.1.0.0.nupkg -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Core.1.1.0.0/lib/Microsoft.WindowsAPICodePack.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Core.1.1.0.0/lib/Microsoft.WindowsAPICodePack.dll -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/.signature.p7s: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/.signature.p7s -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/Microsoft.WindowsAPICodePack-Shell.1.1.0.0.nupkg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/Microsoft.WindowsAPICodePack-Shell.1.1.0.0.nupkg -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/lib/Microsoft.WindowsAPICodePack.Shell.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/lib/Microsoft.WindowsAPICodePack.Shell.dll -------------------------------------------------------------------------------- /packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/lib/Microsoft.WindowsAPICodePack.ShellExtensions.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PabloMK7/EveryFileExplorer/abd579b86fe1e9b836ae7eb41914143b8d44daef/packages/Microsoft.WindowsAPICodePack-Shell.1.1.0.0/lib/Microsoft.WindowsAPICodePack.ShellExtensions.dll --------------------------------------------------------------------------------