├── .gitattributes
├── .gitignore
├── ArcFormats
├── AIRNovel
│ └── ArcAIR.cs
├── AZSys
│ ├── ArcAZSys.cs
│ ├── ArcEncrypted.cs
│ ├── FastMersenneTwister.cs
│ ├── ImageCPB.cs
│ ├── ImageTYP1.cs
│ ├── WidgetAZ.xaml
│ └── WidgetAZ.xaml.cs
├── Abel
│ ├── ArcARC.cs
│ ├── ArcBIN.cs
│ ├── ArcFPK.cs
│ ├── ImageCBF.cs
│ └── ImageGPS.cs
├── Abogado
│ ├── ArcDSK.cs
│ ├── ArcPAK.cs
│ ├── AudioADP.cs
│ ├── ImageKG.cs
│ └── keytable.dat
├── Actgs
│ ├── ArcCG.cs
│ └── ArcDAT.cs
├── ActiveSoft
│ ├── ArcADPACK.cs
│ └── ImageEDT.cs
├── Adobe
│ ├── ArcAIR.cs
│ └── ImagePSD.cs
├── Ads
│ ├── ArcPAC.cs
│ └── ArcPOG.cs
├── AdvDx
│ └── ArcPKD.cs
├── AdvScripter
│ └── ArcPAK.cs
├── AdvSys
│ ├── ArcAdvSys3.cs
│ ├── ArcAdvSysT.cs
│ ├── ArcGR2.cs
│ ├── ImageGR2.cs
│ └── ImageGWD.cs
├── Ail
│ ├── ArcAil.cs
│ └── ArcLNK2.cs
├── Aims
│ └── ArcPACK.cs
├── AliceSoft
│ ├── ArcAAR.cs
│ ├── ArcAFA.cs
│ ├── ArcALD.cs
│ ├── ArcALK.cs
│ ├── ImageAJP.cs
│ ├── ImageDCF.cs
│ ├── ImagePMS.cs
│ └── ImageQNT.cs
├── Amaterasu
│ ├── ArcAMI.cs
│ ├── CreateAMIWidget.xaml
│ ├── CreateAMIWidget.xaml.cs
│ └── ImageGRP.cs
├── AnimeGameSystem
│ ├── ArcANI.cs
│ ├── ArcDAT.cs
│ ├── AudioPCM.cs
│ ├── ImageAinos.cs
│ ├── WidgetAGS.xaml
│ └── WidgetAGS.xaml.cs
├── Ankh
│ ├── ArcDAT.cs
│ ├── ArcGRP.cs
│ ├── AudioPCM.cs
│ ├── ImageGPD.cs
│ └── ImageMSK.cs
├── Antique
│ ├── ArcDAT.cs
│ └── ImageGPD.cs
├── Aoi
│ ├── ArcBOX.cs
│ ├── ArcVFS.cs
│ ├── AudioAOG.cs
│ └── ImageAGF.cs
├── Apricot
│ └── ArcDAT.cs
├── ArcARCX.cs
├── ArcAST.cs
├── ArcAVC.cs
├── ArcCommon.cs
├── ArcFormats.csproj
├── ArcIKS.cs
├── ArcPACKDAT.cs
├── ArcSPack.cs
├── Artemis
│ ├── ArcMJA.cs
│ └── ArcPFS.cs
├── Astronauts
│ └── ArcGXP.cs
├── AudioAIFF.cs
├── AudioMP3.cs
├── AudioOGG.cs
├── AudioVOC.cs
├── AudioWMA.cs
├── Banana
│ ├── ArcPK.cs
│ ├── ImageGEC.cs
│ └── ImageMAG.cs
├── Basil
│ ├── ArcMIF.cs
│ ├── AudioWHC.cs
│ ├── ImageBCF.cs
│ └── ImageNG3.cs
├── BeF
│ ├── AudioVZY.cs
│ └── ImageALO.cs
├── BellDa
│ ├── ArcDAT.cs
│ ├── AudioPW.cs
│ └── ImageCP.cs
├── Bishop
│ ├── ArcBSA.cs
│ ├── ArcBSC.cs
│ ├── ArcPK.cs
│ ├── ImageBSG.cs
│ └── ImageGSA.cs
├── BitStream.cs
├── BlackCyc
│ ├── ArcGPK.cs
│ ├── ArcVPK.cs
│ ├── AudioVAW.cs
│ └── ImageDWQ.cs
├── BlackRainbow
│ ├── ArcADS.cs
│ ├── ArcCCF.cs
│ ├── ArcDAT.cs
│ ├── ArcDX.cs
│ ├── ArcGSP.cs
│ ├── ArcIMP.cs
│ ├── ArcPAK.cs
│ ├── ArcSPPAK.cs
│ ├── ImageBMD.cs
│ └── ImageBMZ.cs
├── Blowfish.cs
├── BlueGale
│ ├── ArcSNN.cs
│ ├── ImageBBM.cs
│ ├── ImageZBM.cs
│ └── VideoAMV.cs
├── Bonk
│ └── ArcPACK.cs
├── Bruns
│ ├── AudioUM3.cs
│ └── ImageEENC.cs
├── C4
│ ├── AudioVMD.cs
│ └── ImageGD.cs
├── CDPA
│ └── ArcPACK.cs
├── Cadath
│ ├── ArcDAF.cs
│ ├── ArcKAR.cs
│ ├── AudioVWF.cs
│ ├── ImageCGF.cs
│ └── ImageKGF.cs
├── Camellia.cs
├── CaramelBox
│ ├── ArcARC3.cs
│ ├── ArcARC4.cs
│ └── ImageFCB.cs
├── Carriere
│ ├── ArcARC.cs
│ └── ImageCGD.cs
├── CatSystem
│ ├── ArcDAT.cs
│ ├── ArcHG2.cs
│ ├── ArcHG3.cs
│ ├── ArcINT.cs
│ ├── CreateINTWidget.xaml
│ ├── CreateINTWidget.xaml.cs
│ ├── ImageHG2.cs
│ ├── ImageHG3.cs
│ ├── WidgetINT.xaml
│ └── WidgetINT.xaml.cs
├── Cherry
│ ├── ArcCherry.cs
│ ├── ArcMyk.cs
│ └── ImageGRP.cs
├── Circus
│ ├── ArcCRM.cs
│ ├── ArcCircus.cs
│ ├── ArcPCK.cs
│ ├── ArcValkyrieComplex.cs
│ ├── AudioPCM.cs
│ ├── ImageCRX.cs
│ └── ImageCRXD.cs
├── ClickTeam
│ └── ArcMF.cs
├── Cmvs
│ ├── ArcCPZ.cs
│ ├── ArcCPZ1.cs
│ ├── ArcCPZ2.cs
│ ├── ArcPBZ.cs
│ ├── AudioMV.cs
│ ├── AudioMV2.cs
│ ├── CmvsMD5.cs
│ ├── CpzHeader.cs
│ ├── HuffmanDecoder.cs
│ ├── ImageMSK.cs
│ ├── ImagePB2.cs
│ ├── ImagePB3.cs
│ └── ImagePSB.cs
├── CommonStreams.cs
├── Crc16.cs
├── Crc32.cs
├── Crc64.cs
├── Cri
│ ├── ArcAFS.cs
│ ├── ArcCPK.cs
│ ├── ArcSPC.cs
│ ├── AudioADX.cs
│ ├── AudioHCA.cs
│ ├── BigEndianReader.cs
│ ├── ImageBIP.cs
│ ├── ImageGXT.cs
│ ├── ImageSPC.cs
│ └── ImageXTX.cs
├── Cromwell
│ └── ArcPAK.cs
├── Crowd
│ ├── ArcPCK.cs
│ ├── AudioEOG.cs
│ ├── ImageCRZ.cs
│ ├── ImageCWL.cs
│ ├── ImageCWP.cs
│ ├── ImageGAX.cs
│ └── ImageZBM.cs
├── CsWare
│ ├── ArcARC2.cs
│ ├── ArcDAT.cs
│ ├── ArcPCS.cs
│ ├── AudioAF2.cs
│ ├── AudioWAV.cs
│ ├── ImageB5.cs
│ ├── ImageBPC.cs
│ └── ImageGDT.cs
├── Cyberworks
│ ├── ArcAPP.cs
│ ├── ArcDAT.cs
│ ├── ArcP8.cs
│ ├── AudioTINK.cs
│ ├── ImageTB1.cs
│ ├── ImageTINK.cs
│ ├── WidgetBELL.xaml
│ └── WidgetBELL.xaml.cs
├── DDSystem
│ └── ArcDDP.cs
├── Dac
│ ├── ArcDPK.cs
│ ├── ImageDGC.cs
│ ├── WidgetDPK.xaml
│ └── WidgetDPK.xaml.cs
├── DaiSystem
│ └── ArcPAC.cs
├── Debonosu
│ └── ArcPAK.cs
├── DenSDK
│ └── ArcDAF.cs
├── DigitalWorks
│ ├── ArcBIN.cs
│ ├── ArcPAC.cs
│ ├── ImageTM2.cs
│ └── ImageTX.cs
├── DirectDraw
│ ├── DxtDecoder.cs
│ └── ImageDDS.cs
├── DjSystem
│ └── ArcDAT.cs
├── Dogenzaka
│ ├── ArcBIN.cs
│ └── ImageRSA.cs
├── DraftArc.cs
├── DraftAudio.cs
├── DraftImage.cs
├── DxLib
│ ├── ArcDX.cs
│ ├── ArcDX8.cs
│ ├── ArcMED.cs
│ ├── DxKey.cs
│ ├── WidgetSCR.xaml
│ └── WidgetSCR.xaml.cs
├── Eagls
│ ├── ArcEAGLS.cs
│ ├── ImageGR.cs
│ ├── WidgetEAGLS.xaml
│ └── WidgetEAGLS.xaml.cs
├── Ellefin
│ └── ArcEPK.cs
├── EmbeddedResource.cs
├── Emic
│ ├── ArcPACK.cs
│ └── ImageMWP.cs
├── EmonEngine
│ ├── ArcEME.cs
│ └── ImageBMP.cs
├── Emote
│ ├── ArcPSB.cs
│ └── ImageDREF.cs
├── EntExec
│ └── ArcCAB.cs
├── Entis
│ ├── ArcERI.cs
│ ├── ArcNOA.cs
│ ├── ArcPAC.cs
│ ├── AudioEMS.cs
│ ├── AudioMIO.cs
│ ├── EriReader.cs
│ ├── ErisaMatrix.cs
│ ├── ErisaNemesis.cs
│ ├── ImageERI.cs
│ ├── MioDecoder.cs
│ ├── WidgetNOA.xaml
│ └── WidgetNOA.xaml.cs
├── Escude
│ └── ArcBIN.cs
├── Eternity
│ ├── ArcGLNK.cs
│ ├── ArcMiris.cs
│ └── ImageSGF.cs
├── Ethornell
│ ├── ArcBGI.cs
│ ├── AudioBGI.cs
│ ├── ImageBGI.cs
│ └── ImageCBG.cs
├── Eushully
│ ├── ArcALF.cs
│ ├── ArcGPC.cs
│ ├── AudioAOG.cs
│ ├── ImageAGF.cs
│ └── ImageGP.cs
├── ExHibit
│ ├── ArcGRP.cs
│ ├── ImageGYU.cs
│ ├── WidgetGYU.xaml
│ └── WidgetGYU.xaml.cs
├── ExeFile.cs
├── FC01
│ ├── ArcBDT.cs
│ ├── ArcMCA.cs
│ ├── ArcMRG.cs
│ ├── ArcMRG0.cs
│ ├── ArcPAK.cs
│ ├── BdtTables.cs
│ ├── ImageACD.cs
│ ├── ImageCLM.cs
│ ├── ImageMCG.cs
│ ├── ImageTIL.cs
│ ├── ImageWM2.cs
│ ├── ImageWMK.cs
│ ├── WidgetMCG.xaml
│ └── WidgetMCG.xaml.cs
├── FamilyAdvSystem
│ └── ArcCSAF.cs
├── Favorite
│ ├── ArcBIN.cs
│ ├── ArcFVP.cs
│ ├── ArcHZC.cs
│ └── ImageHZC.cs
├── Ffa
│ ├── ArcBlackPackage.cs
│ ├── ArcFFA.cs
│ ├── AudioWA1.cs
│ ├── AudioWA2.cs
│ └── ImagePT1.cs
├── FlyingShine
│ ├── ArcPD.cs
│ ├── CreatePDWidget.xaml
│ └── CreatePDWidget.xaml.cs
├── Foster
│ ├── ArcC24.cs
│ ├── ArcFA2.cs
│ ├── ImageC24.cs
│ └── ImageC25.cs
├── FrontWing
│ ├── ArcFG.cs
│ ├── ArcFLT.cs
│ ├── ArcVAV.cs
│ └── ImageFG.cs
├── G2
│ ├── ArcGCEX.cs
│ └── ImageBGRA.cs
├── GLib
│ └── ArcG.cs
├── GScripter
│ └── ArcDATA.cs
├── GameSystem
│ ├── ArcCHR.cs
│ ├── ArcCMP.cs
│ ├── ArcDAT.cs
│ ├── ArcPureMail.cs
│ ├── AudioADP4.cs
│ ├── ImageALP.cs
│ ├── ImageBGD.cs
│ ├── ImageCGD.cs
│ ├── ImageCHR.cs
│ └── ImageTEXB.cs
├── Glib2
│ ├── ArcG2.cs
│ └── ImagePGX.cs
├── Gpk2
│ ├── ArcGPK2.cs
│ └── ImageGFB.cs
├── Groover
│ └── ArcPCG.cs
├── GsPack
│ ├── ArcGsPack.cs
│ └── ImageGS.cs
├── Gss
│ └── ArcARC.cs
├── HCSystem
│ ├── ArcPAK.cs
│ └── ImageOPF.cs
├── HSP
│ └── ArcDPM.cs
├── Hexenhaus
│ ├── ArcARCC.cs
│ ├── ArcODIO.cs
│ └── ArcWAG.cs
├── HuffmanCompression.cs
├── Hypatia
│ ├── ArcKogado.cs
│ ├── ArcLPC.cs
│ ├── ArcLPK.cs
│ ├── AudioADP.cs
│ ├── ImageLPG.cs
│ ├── ImageLSG.cs
│ └── ImageWBM.cs
├── Ice
│ ├── ImageIBM.cs
│ └── ScriptISD.cs
├── Ikura
│ ├── ArcDRS.cs
│ ├── ArcGAN.cs
│ ├── ArcTAN.cs
│ ├── ImageDRG.cs
│ ├── ImageGGA.cs
│ ├── ImageGGP.cs
│ ├── ImageGGS.cs
│ ├── ImageTAN.cs
│ ├── ImageVRS.cs
│ ├── ImageYGP.cs
│ ├── WidgetISF.xaml
│ └── WidgetISF.xaml.cs
├── Illusion
│ └── ArcPP.cs
├── ImageEGN.cs
├── ImageLZ.cs
├── ImageLZS.cs
├── ImageMB.cs
├── ImageMNG.cs
├── ImagePIC.cs
├── ImagePNX.cs
├── ImagePSM.cs
├── ImagePTI.cs
├── Interheart
│ ├── ArcFPK.cs
│ ├── ArcFPK2.cs
│ ├── ImageBMP.cs
│ ├── ImageCandy.cs
│ ├── ImageHMP.cs
│ └── ImageKG.cs
├── Ipac
│ ├── ArcIPAC.cs
│ ├── AudioWST.cs
│ └── ImageIES.cs
├── Irrlicht
│ ├── ArcARK.cs
│ └── ArcPACK.cs
├── Ism
│ ├── ArcISA.cs
│ ├── ImageISG.cs
│ └── ImagePNG.cs
├── Ivory
│ ├── ArcPK.cs
│ ├── ArcPX.cs
│ ├── ArcSG.cs
│ ├── AudioCTRK.cs
│ ├── ImageMMD.cs
│ ├── ImageMOE.cs
│ └── ImageSG.cs
├── JamCreation
│ ├── ArcDAT.cs
│ └── ImageDPO.cs
├── KScript
│ ├── ArcKPC.cs
│ ├── ImageKGP.cs
│ └── ImageKSL.cs
├── Kaas
│ ├── ArcKAAS.cs
│ ├── ArcPB.cs
│ ├── AudioKAAS.cs
│ └── ImageKAAS.cs
├── Kaguya
│ ├── ArcAN21.cs
│ ├── ArcANM.cs
│ ├── ArcKaguya.cs
│ ├── ArcLIN2.cs
│ ├── ArcLINK.cs
│ ├── ArcPLT.cs
│ ├── ArcUF.cs
│ ├── ImageAO.cs
│ ├── ImageAP.cs
│ └── ImageAPS.cs
├── Key
│ ├── ArcPAK.cs
│ ├── AudioOGGPAK.cs
│ └── ImageCZ.cs
├── Kid
│ ├── ArcDAT.cs
│ ├── AudioWAF.cs
│ └── ImagePRT.cs
├── KiriKiri
│ ├── ArcXP3.cs
│ ├── ArcXPK.cs
│ ├── ChainReactionCrypt.cs
│ ├── CreateXP3Widget.xaml
│ ├── CreateXP3Widget.xaml.cs
│ ├── CroixCrypt.cs
│ ├── CryptAlgorithms.cs
│ ├── CzCrypt.cs
│ ├── ImageTLG.cs
│ ├── KiriKiriCx.cs
│ ├── MoreCrypt.cs
│ ├── WidgetXP3.xaml
│ ├── WidgetXP3.xaml.cs
│ └── YuzCrypt.cs
├── Kiss
│ └── ArcARC.cs
├── Kogado
│ └── ArcARC.cs
├── KogadoCocotte.cs
├── Kurumi
│ └── ImageGRA.cs
├── Lambda
│ ├── ArcCLS.cs
│ ├── ArcLAX.cs
│ └── ImageCLS.cs
├── Leaf
│ ├── ArcA.cs
│ ├── ArcAM.cs
│ ├── ArcAR2.cs
│ ├── ArcLAC.cs
│ ├── ArcLEAF.cs
│ ├── ArcPAK.cs
│ ├── ArcPX.cs
│ ├── ArcTEX.cs
│ ├── AudioG.cs
│ ├── AudioP16.cs
│ ├── AudioW.cs
│ ├── ImageBJR.cs
│ ├── ImageLFG.cs
│ ├── ImageLGF.cs
│ ├── ImagePX.cs
│ ├── WidgetLEAF.xaml
│ └── WidgetLEAF.xaml.cs
├── Liar
│ ├── ArcLWG.cs
│ ├── ArcXFL.cs
│ ├── ImageLIM.cs
│ └── ImageWCG.cs
├── Lilim
│ ├── ArcABM.cs
│ ├── ArcAOS.cs
│ ├── ArcFGA.cs
│ ├── ImageABM.cs
│ └── ImageIMG.cs
├── Littlewitch
│ └── ArcDAT.cs
├── LiveMaker
│ ├── ArcGALX.cs
│ ├── ArcVF.cs
│ ├── ImageGAL.cs
│ ├── ImageGALX.cs
│ ├── WidgetGAL.xaml
│ └── WidgetGAL.xaml.cs
├── Lucifen
│ ├── ArcLPK.cs
│ ├── ImageELG.cs
│ ├── WidgetLPK.xaml
│ └── WidgetLPK.xaml.cs
├── LunaSoft
│ └── ArcPAC.cs
├── Lz4Stream.cs
├── Lzma
│ ├── ICoder.cs
│ ├── LzOutWindow.cs
│ ├── LzmaBase.cs
│ ├── LzmaDecoder.cs
│ ├── RangeCoder.cs
│ ├── RangeCoderBit.cs
│ └── RangeCoderBitTree.cs
├── LzssStream.cs
├── MAI
│ ├── ArcMAI.cs
│ └── ImageMAI.cs
├── MD5.cs
├── Macintosh
│ └── ImagePICT.cs
├── Macromedia
│ ├── ArcDXR.cs
│ ├── ArcSWF.cs
│ ├── AudioEDIM.cs
│ ├── AudioSND.cs
│ ├── DirectorFile.cs
│ ├── ImageBITD.cs
│ └── Palettes.cs
├── Maika
│ ├── ArcBK.cs
│ ├── ArcMIK01.cs
│ ├── ArcMK2.cs
│ └── AudioWV5.cs
├── Majiro
│ ├── ArcMajiro.cs
│ ├── ImageRC8.cs
│ ├── ImageRCT.cs
│ ├── WidgetRCT.xaml
│ └── WidgetRCT.xaml.cs
├── Malie
│ ├── ArcLIB.cs
│ ├── ArcLIBU.cs
│ ├── ImageDZI.cs
│ ├── ImageMGF.cs
│ ├── LibScheme.cs
│ └── MalieEncryption.cs
├── MangaGamer
│ ├── ArcMGPK.cs
│ ├── ArcSHA.cs
│ ├── WidgetMGPK.xaml
│ └── WidgetMGPK.xaml.cs
├── Marble
│ ├── ArcDNS.cs
│ ├── ArcMBL.cs
│ ├── AudioWADY.cs
│ ├── ImagePRS.cs
│ ├── ImageYP.cs
│ ├── VideoANIM.cs
│ ├── WidgetMBL.xaml
│ └── WidgetMBL.xaml.cs
├── Masys
│ ├── ArcMGD.cs
│ ├── ArcMGS.cs
│ ├── ImageAG.cs
│ └── ImageALP.cs
├── Mebius
│ ├── AudioKOE.cs
│ └── ImageMCG.cs
├── MersenneTwister.cs
├── MicroVision
│ ├── ArcARC.cs
│ ├── ArcGSD.cs
│ ├── AudioIKM.cs
│ └── ImageGPC.cs
├── Misc
│ └── ArcBIN.cs
├── Mixwill
│ ├── ArcARC0.cs
│ └── ImagePB00.cs
├── MnoViolet
│ ├── ArcMnoViolet.cs
│ ├── ImageDIF.cs
│ └── ImageGRA.cs
├── Mnp
│ └── ArcMMA.cs
├── MokoPro
│ └── CompressedFile.cs
├── Moonhir
│ └── ArcFPK.cs
├── Morning
│ ├── ArcPAK.cs
│ └── ArcTTD.cs
├── Mugi
│ └── ArcBIN.cs
├── MultiFileArchive.cs
├── Musica
│ ├── ArcANI.cs
│ ├── ArcPAZ.cs
│ ├── ArcSQZ.cs
│ ├── WidgetPAZ.xaml
│ └── WidgetPAZ.xaml.cs
├── MyAdv
│ └── ArcPAC.cs
├── NScripter
│ ├── ArcNS2.cs
│ ├── ArcNSA.cs
│ ├── ArcSAR.cs
│ ├── CreateONSWidget.xaml
│ ├── CreateONSWidget.xaml.cs
│ ├── EncryptedStream.cs
│ ├── Script.cs
│ ├── WidgetNSA.xaml
│ └── WidgetNSA.xaml.cs
├── NSystem
│ ├── ArcFJSYS.cs
│ ├── ImageMGD.cs
│ ├── WidgetMSD.xaml
│ └── WidgetMSD.xaml.cs
├── Nags
│ ├── ArcNFS.cs
│ └── ImageNGP.cs
├── Nejii
│ ├── ArcCDT.cs
│ └── ArcPCD.cs
├── NekoSDK
│ ├── ArcDAT.cs
│ ├── ArcPAK.cs
│ └── ImageALP.cs
├── Nekopack
│ ├── ArcNEKO.cs
│ ├── ArcNEKO2.cs
│ └── ArcNEKO3.cs
├── Nekopunch
│ ├── ArcPAK.cs
│ └── ImagePBM.cs
├── Nexas
│ ├── ArcPAC.cs
│ ├── ArcTPF.cs
│ └── ImageGRP.cs
├── NitroPlus
│ ├── ArcLAY.cs
│ ├── ArcMPK.cs
│ ├── ArcNPA.cs
│ ├── ArcNPK.cs
│ ├── ArcNPP.cs
│ ├── ArcNitro.cs
│ ├── ArcPAK.cs
│ ├── ArcSteinsGate.cs
│ ├── CreateNPAWidget.xaml
│ ├── CreateNPAWidget.xaml.cs
│ ├── CreateSGWidget.xaml
│ ├── CreateSGWidget.xaml.cs
│ ├── WidgetNPA.xaml
│ ├── WidgetNPA.xaml.cs
│ ├── WidgetNPK.xaml
│ └── WidgetNPK.xaml.cs
├── Noesis
│ └── ArcIGA.cs
├── NonColor
│ ├── ArcACV.cs
│ ├── ArcDAT.cs
│ ├── ArcMinato.cs
│ ├── WidgetNCARC.xaml
│ └── WidgetNCARC.xaml.cs
├── Nonono
│ ├── ArcNPF.cs
│ └── ImageIMGX.cs
├── OneUp
│ └── ArcARC.cs
├── Origin
│ ├── ArcDAT.cs
│ └── ArcGAF.cs
├── Otemoto
│ ├── ArcTLZ.cs
│ └── ImageMAG.cs
├── PackedStream.cs
├── Pajamas
│ ├── ArcGameDat.cs
│ └── ImageEPA.cs
├── Palette
│ ├── ArcCHR.cs
│ ├── ArcPAK.cs
│ ├── ArcPAK2.cs
│ └── ImagePGA.cs
├── PalmTree
│ └── ArcAR.cs
├── Pandora
│ ├── ArcPBX.cs
│ └── ImageXL24.cs
├── Patisserie
│ ├── ArcBIN.cs
│ └── ArcRAW.cs
├── PkWare
│ ├── ArcZIP.cs
│ ├── WidgetZIP.xaml
│ └── WidgetZIP.xaml.cs
├── Primel
│ ├── ArcPCF.cs
│ ├── AudioWBC.cs
│ ├── Compression.cs
│ ├── Encryption.cs
│ ├── ImageGBC.cs
│ ├── RC6.cs
│ └── SHA256.cs
├── Propeller
│ ├── ArcMGR.cs
│ ├── ArcMPK.cs
│ └── ImageMGR.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ ├── Settings.cs
│ └── Settings.settings
├── Psp
│ └── ArcQPK.cs
├── Qlie
│ ├── ArcABMP.cs
│ ├── ArcQLIE.cs
│ ├── DelphiDeserializer.cs
│ ├── Encryption.cs
│ ├── ImageABMP.cs
│ ├── ImageARGB.cs
│ ├── ImageDPNG.cs
│ ├── QlieMersenneTwister.cs
│ ├── WidgetQLIE.xaml
│ └── WidgetQLIE.xaml.cs
├── RC4.cs
├── RPM
│ ├── ArcARC.cs
│ ├── ArcZENOS.cs
│ ├── WidgetARC.xaml
│ └── WidgetARC.xaml.cs
├── RealLive
│ ├── ArcG00.cs
│ ├── ArcKOE.cs
│ ├── ArcOVK.cs
│ ├── ArcSEEN.cs
│ ├── AudioNWA.cs
│ ├── AudioOWP.cs
│ ├── ImageG00.cs
│ ├── ImageG00Jpeg.cs
│ └── ImagePDT.cs
├── RenPy
│ ├── ArcRPA.cs
│ ├── CreateRPAWidget.xaml
│ └── CreateRPAWidget.xaml.cs
├── ResourceSettings.cs
├── Resources
│ └── Formats.dat
├── RiddleSoft
│ ├── ArcPAC.cs
│ └── ImageGCP.cs
├── Risa
│ └── ImageSYG.cs
├── Rits
│ ├── ArcSAF.cs
│ └── ImageHBM.cs
├── SHSystem
│ └── ArcHXP.cs
├── Sas5
│ ├── ArcIAR.cs
│ ├── ArcSec5.cs
│ ├── ArcWAR.cs
│ └── ImageIAR.cs
├── ScenePlayer
│ ├── ArcPMA.cs
│ ├── ArcPMX.cs
│ ├── AudioPMW.cs
│ └── ImagePMP.cs
├── Scoop
│ ├── ArcGX.cs
│ └── ImageSCP.cs
├── ScrPlayer
│ ├── ArcPAK.cs
│ ├── IColorBitsTable1
│ ├── IColorBitsTable2
│ ├── IControlTable1
│ ├── IControlTable2
│ ├── IControlTable32
│ ├── ImageI.cs
│ ├── ImageIMG.cs
│ ├── ImgControlTable1
│ ├── ImgControlTable2
│ ├── ImgControlTable32
│ └── ImgDeltaTable2
├── Selene
│ ├── ArcKCAP.cs
│ ├── WidgetKCAP.xaml
│ └── WidgetKCAP.xaml.cs
├── Seraphim
│ ├── ArcArchAngel.cs
│ ├── ArcCP3.cs
│ ├── ArcMC.cs
│ ├── ArcSCN.cs
│ ├── ArcSeraph.cs
│ ├── ArcVoice.cs
│ ├── ImageCP3.cs
│ └── ImageSeraph.cs
├── ShiinaRio
│ ├── ArcS25.cs
│ ├── ArcWARC.cs
│ ├── ArcWARC1.0.cs
│ ├── AudioOGV.cs
│ ├── AudioPAD.cs
│ ├── ImageCHD.cs
│ ├── ImageMI4.cs
│ ├── ImageS25.cs
│ ├── WarcEncryption.cs
│ ├── WidgetWARC.xaml
│ └── WidgetWARC.xaml.cs
├── Silky
│ ├── ArcARC.cs
│ ├── ArcAWF.cs
│ ├── ArcAi6Win.cs
│ ├── ArcAzurite.cs
│ ├── ArcIFL.cs
│ ├── ArcMFG.cs
│ ├── ImageAKB.cs
│ ├── ImageGRD.cs
│ ├── ImageIGF.cs
│ ├── ImageMFG.cs
│ ├── ImageMSK.cs
│ └── ImageZIT.cs
├── SimpleEncryption.cs
├── SingleFileArchive.cs
├── Slg
│ ├── ArcSPD.cs
│ ├── ArcSZS.cs
│ ├── AudioVOI.cs
│ ├── ImageALB.cs
│ ├── ImageTIG.cs
│ └── ImageTIM.cs
├── Softpal
│ ├── ArcPAC.cs
│ ├── ArcVAFS.cs
│ ├── AudioBGM.cs
│ ├── ImageBPIC.cs
│ ├── ImagePGD.cs
│ ├── ImagePIC.cs
│ ├── WaveTable1
│ └── WaveTable2
├── Software House Parsley
│ ├── ArcCG.cs
│ ├── ArcCG2.cs
│ ├── ArcCG3.cs
│ ├── ArcPAC.cs
│ ├── ArcScn.cs
│ ├── ArcUCG.cs
│ └── ImagePCG.cs
├── Sohfu
│ ├── ArcSKA.cs
│ └── ImageDTL.cs
├── Speed
│ └── ArcARC.cs
├── Stack
│ └── ArcGPK.cs
├── Strikes
│ ├── ArcPCK.cs
│ └── ImageLAG.cs
├── Strings
│ ├── arcStrings.Designer.cs
│ ├── arcStrings.ja-JP.resx
│ ├── arcStrings.ko-KR.resx
│ ├── arcStrings.resx
│ ├── arcStrings.ru-RU.resx
│ └── arcStrings.zh-Hans.resx
├── StudioEgo
│ ├── ArcEGO.cs
│ ├── ArcPAK0.cs
│ └── ImageANT.cs
├── StudioJikkenshitsu
│ ├── ArcUMPK.cs
│ ├── ImageDAT.cs
│ ├── ImageGRC.cs
│ ├── ImageGRD.cs
│ ├── SjTransform.cs
│ ├── WidgetSJDAT.xaml
│ └── WidgetSJDAT.xaml.cs
├── StudioSakura
│ └── ArcDAT.cs
├── Succubus
│ ├── ArcARC.cs
│ └── ImageGH.cs
├── SuperNekoX
│ └── ArcGPC.cs
├── Sviu
│ ├── ArcPKZ.cs
│ ├── AudioKOG.cs
│ ├── ImageGBP.cs
│ └── ImageJBP.cs
├── SysD
│ ├── ArcDPK.cs
│ ├── AudioDWV.cs
│ └── ImageDBM.cs
├── Tactics
│ ├── ArcLST.cs
│ ├── ArcTactics.cs
│ ├── ArcYU.cs
│ ├── ImageTGF.cs
│ ├── WidgetTactics.xaml
│ └── WidgetTactics.xaml.cs
├── Tail
│ ├── ArcCAF.cs
│ ├── ArcPKG.cs
│ └── ImageCFP.cs
├── TamaSoft
│ ├── ArcEPK.cs
│ ├── AudioESD.cs
│ ├── ImageBTN.cs
│ └── ImageSUR.cs
├── Tamamo
│ ├── ArcPCK.cs
│ ├── WidgetPCK.xaml
│ └── WidgetPCK.xaml.cs
├── Tanaka
│ ├── ArcARC0.cs
│ ├── ArcARCG.cs
│ ├── ArcBMX.cs
│ ├── ArcMBF.cs
│ ├── ArcSMV.cs
│ ├── ArcVPK.cs
│ ├── ArcWRC.cs
│ ├── ArcWSM.cs
│ └── ImageBC.cs
├── TanukiSoft
│ ├── ArcTAC.cs
│ └── ImageAF.cs
├── Taskforce
│ └── ArcDAT.cs
├── TechGian
│ └── ArcBIN.cs
├── TechnoBrain
│ ├── ArcIPQ.cs
│ ├── AudioWAPE.cs
│ ├── ImageIPF.cs
│ └── ImageIPH.cs
├── Tmr-Hiro
│ ├── ArcPAC.cs
│ ├── AudioTmr.cs
│ └── ImageGRD.cs
├── TopCat
│ ├── ArcTCD1.cs
│ ├── ArcTCD3.cs
│ └── ImageSPD.cs
├── Triangle
│ ├── ArcBMX.cs
│ ├── ArcCGF.cs
│ ├── ArcDAT.cs
│ ├── ArcIAF.cs
│ ├── ArcSUD.cs
│ ├── ImageIAF.cs
│ └── ImageTRI.cs
├── UMeSoft
│ ├── ArcMGX.cs
│ ├── ArcPK.cs
│ └── ImageGRX.cs
├── Ucom
│ ├── ArcDATA.cs
│ ├── ArcUK.cs
│ └── ImageGPC.cs
├── Unity
│ ├── ArcASSET.cs
│ ├── ArcBIN.cs
│ ├── ArcDSM.cs
│ ├── ArcSpVM.cs
│ ├── ArcUnityFS.cs
│ ├── Asset.cs
│ ├── AssetReader.cs
│ ├── AudioClip.cs
│ ├── AudioFSB5.cs
│ ├── Bc7Decoder.cs
│ ├── BundleStream.cs
│ ├── Gx4Lib
│ │ └── ArcDAT.cs
│ ├── OggStream.cs
│ ├── PMaster
│ │ └── ArcDAT.cs
│ ├── ResourcesAssets.cs
│ ├── ScriptDSM.cs
│ ├── Texture2D.cs
│ ├── Utage
│ │ └── ImageUTAGE.cs
│ ├── Vorbis.cs
│ └── strings.dat
├── Valkyria
│ ├── ArcAM2.cs
│ ├── ArcDAT.cs
│ ├── ArcODN.cs
│ ├── ImageMAL.cs
│ └── ImageMG2.cs
├── Vitamin
│ ├── ImageMFC.cs
│ └── ImageSBI.cs
├── VnEngine
│ ├── ArcAXR.cs
│ └── ImageZAW.cs
├── VnSystem
│ └── ArcVFS.cs
├── WebP
│ ├── Alpha.cs
│ ├── Decoder.cs
│ ├── Filters.cs
│ ├── Huffman.cs
│ ├── ImageWEBP.cs
│ └── Lossless.cs
├── WildBug
│ ├── ArcWBP.cs
│ ├── AudioWPN.cs
│ ├── AudioWWA.cs
│ └── ImageWBM.cs
├── Will
│ ├── ArcPNA.cs
│ ├── ArcPulltop.cs
│ ├── ArcWILL.cs
│ ├── ArcWIP.cs
│ ├── CreateARCWidget.xaml
│ ├── CreateARCWidget.xaml.cs
│ └── ImageWIP.cs
├── Winters
│ ├── ArcCFP.cs
│ ├── ArcDAT.cs
│ ├── ArcIFP.cs
│ └── ArcIFX.cs
├── Xuse
│ ├── ArcBIN.cs
│ ├── ArcGD.cs
│ ├── ArcNT.cs
│ ├── ArcWAG.cs
│ ├── ArcWVB.cs
│ ├── ArcXARC.cs
│ ├── ArcXuse.cs
│ └── ImageP.cs
├── YaneSDK
│ ├── ArcDAT.cs
│ └── ArcHibiki.cs
├── Yatagarasu
│ ├── ArcPKG.cs
│ └── ArcPKG2.cs
├── Youkai
│ └── ArcDAT.cs
├── Yox
│ └── ArcYOX.cs
├── YuRis
│ ├── ArcYPF.cs
│ ├── CreateYPFWidget.xaml
│ ├── CreateYPFWidget.xaml.cs
│ ├── ImageYCG.cs
│ ├── WidgetYPF.xaml
│ └── WidgetYPF.xaml.cs
├── Yuka
│ ├── ArcYKC.cs
│ └── ImageYKG.cs
├── Zyx
│ ├── ArcBDF.cs
│ ├── ImageMTL.cs
│ ├── ImageSPL.cs
│ └── ImageXMG.cs
├── app.config
├── elf
│ ├── ArcAi5DAT.cs
│ ├── ArcAi5Win.cs
│ ├── ArcHED.cs
│ ├── ArcVOL.cs
│ ├── ArcVSD.cs
│ ├── ImageG24.cs
│ ├── ImageGCC.cs
│ ├── ImageGP8.cs
│ ├── ImageGPH.cs
│ ├── ImageHIZ.cs
│ └── ImageRMT.cs
├── packages.config
├── rUGP
│ ├── ArcRIO.cs
│ ├── AudioRHA.cs
│ ├── ImageRIP.cs
│ └── ImageS5I.cs
└── uGOS
│ ├── ArcDET.cs
│ ├── ImageBMP.cs
│ └── ImageTXT.cs
├── Console
├── App.config
├── ConsoleBrowser.cs
├── GARbro.Console.csproj
├── GARbro.Console.csproj.user
├── Properties
│ └── AssemblyInfo.cs
└── README.md
├── Experimental
├── Artemis
│ ├── GplexBuffers.cs
│ ├── IPT.Language.analyzer.lex
│ ├── IPT.Language.grammar.y
│ ├── IPT.Parser.Generated.cs
│ ├── IPT.Parser.cs
│ ├── IPT.Scanner.Generated.cs
│ ├── IPT.Scanner.cs
│ ├── IPT.parser
│ ├── ImageIPT.cs
│ └── ShiftReduceParserCode.cs
├── Cabinet
│ └── ArcCAB.cs
├── CellWorks
│ └── ArcDB.cs
├── Experimental.csproj
├── Microsoft
│ ├── ArcEXE.cs
│ └── ArcNE.cs
├── Opus
│ └── AudioOPUS.cs
├── Properties
│ └── AssemblyInfo.cs
├── RPGMaker
│ ├── ArcRGSS.cs
│ ├── AudioRPGMV.cs
│ └── ImageRPGMV.cs
├── SakanaGL
│ └── ArcSX.cs
├── WebP
│ └── ImageWEBP.cs
├── app.config
├── packages.config
├── x64
│ └── libwebp.dll
└── x86
│ └── libwebp.dll
├── GARbro.nsi
├── GARbro.sln
├── GUI
├── AboutBox.xaml
├── AboutBox.xaml.cs
├── App.config
├── App.xaml
├── App.xaml.cs
├── ArcParameters.xaml
├── ArcParameters.xaml.cs
├── AutoComplete.cs
├── ConvertMedia.xaml
├── ConvertMedia.xaml.cs
├── CreateArchive.xaml
├── CreateArchive.xaml.cs
├── DragScroll.cs
├── EnterMaskDialog.xaml
├── EnterMaskDialog.xaml.cs
├── ExtractArchive.xaml
├── ExtractArchive.xaml.cs
├── ExtractDialog.cs
├── ExtractFile.xaml
├── ExtractFile.xaml.cs
├── FileErrorDialog.xaml
├── FileErrorDialog.xaml.cs
├── FileExistsDialog.xaml
├── FileExistsDialog.xaml.cs
├── GARbro.GUI.csproj
├── GARbro.GUI.csproj.user
├── GarConvert.cs
├── GarCreate.cs
├── GarExtract.cs
├── GarOperation.cs
├── GarUpdate.cs
├── HistoryStack.cs
├── ImagePreview.cs
├── Images
│ ├── 32x32
│ │ ├── back button.png
│ │ ├── forward button.png
│ │ └── help.png
│ ├── 48x48
│ │ └── refresh.png
│ ├── 64x64
│ │ ├── actions.png
│ │ ├── alert.png
│ │ └── info.png
│ ├── Cursors
│ │ ├── grab.cur
│ │ └── grabbing.cur
│ ├── sample.ico
│ ├── search4files.ico
│ └── splashscreen.png
├── ListViewEx.cs
├── MainWindow.xaml
├── MainWindow.xaml.cs
├── ModalWindow.cs
├── NAudio.cs
├── ProgressDialog
│ ├── IProgressDialog.cs
│ └── ProgressDialog.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ ├── Settings.settings
│ └── app.manifest
├── Settings.cs
├── SettingsWindow.xaml
├── SettingsWindow.xaml.cs
├── Shell.cs
├── Strings
│ ├── guiStrings.Designer.cs
│ ├── guiStrings.ja-JP.resx
│ ├── guiStrings.ko-KR.resx
│ ├── guiStrings.resx
│ ├── guiStrings.ru-RU.resx
│ └── guiStrings.zh-Hans.resx
├── TextViewer.xaml
├── TextViewer.xaml.cs
├── TroubleShootingDialog.xaml
├── TroubleShootingDialog.xaml.cs
├── UpdateDialog.xaml
├── UpdateDialog.xaml.cs
├── Utility.cs
├── ViewModel.cs
└── packages.config
├── GameRes
├── ArcFile.cs
├── ArcStream.cs
├── ArcView.cs
├── ArchiveFormat.cs
├── Audio.cs
├── AudioWAV.cs
├── BinaryStream.cs
├── ByteArray.cs
├── Checksum.cs
├── FileSystem.cs
├── FormatCatalog.cs
├── GameRes.cs
├── GameRes.csproj
├── Image.cs
├── ImageBMP.cs
├── ImageDecoder.cs
├── ImageJPEG.cs
├── ImagePNG.cs
├── ImageTGA.cs
├── ImageTIFF.cs
├── MultiDict.cs
├── Properties
│ ├── AssemblyInfo.cs
│ ├── Settings.Designer.cs
│ ├── Settings.cs
│ └── Settings.settings
├── README.md
├── ResourceSettings.cs
├── ScriptText.cs
├── Strings
│ ├── garStrings.Designer.cs
│ ├── garStrings.ja-JP.resx
│ ├── garStrings.ko-KR.resx
│ ├── garStrings.resx
│ ├── garStrings.ru-RU.resx
│ └── garStrings.zh-Hans.resx
├── StructSerialization.cs
├── Utility.cs
├── ZLibStream.cs
├── app.config
└── packages.config
├── Image.Convert
├── App.config
├── Image.Convert.csproj
├── Image.Convert.csproj.user
├── Program.cs
├── Properties
│ └── AssemblyInfo.cs
└── README.md
├── LICENSE
├── Legacy
├── .gitignore
├── ADVGSys
│ └── ImageBMP.cs
├── Aaru
│ ├── ArcDL1.cs
│ ├── ArcFL2.cs
│ ├── ArcFL3.cs
│ ├── ArcFL4.cs
│ ├── AudioWV1.cs
│ └── ImageBM2.cs
├── Acme
│ ├── ImageARD.cs
│ └── ImagePMG.cs
├── Adv98
│ └── ImageGPC.cs
├── Adviz
│ ├── ImageBIZ.cs
│ ├── ImageBIZ2.cs
│ ├── ImageGIZ.cs
│ └── ImageGIZ2.cs
├── Ags32i
│ ├── AudioAGS.cs
│ └── ImageGSS.cs
├── Airyu
│ └── ArcCHR.cs
├── Akatombo
│ ├── ArcX.cs
│ └── ImageFB.cs
├── AlphaSystem
│ ├── ArcPAK.cs
│ └── ImageSFG.cs
├── Alterna
│ └── ArcBIN.cs
├── AnotherRoom
│ ├── AudioWAZ.cs
│ └── ImageGR1.cs
├── Aos
│ └── ArcDAT.cs
├── ApplePie
│ ├── ArcARC.cs
│ └── ImageGT.cs
├── Aquarium
│ ├── ArcAAP.cs
│ ├── ArcCPA.cs
│ └── ImageCP2.cs
├── Ark
│ └── ImageCMP.cs
├── Artel
│ ├── ArcPFD.cs
│ ├── AudioMUW.cs
│ └── ImageMRL.cs
├── Asura
│ ├── ArcPAK.cs
│ └── ImageMTG.cs
├── AyPio
│ ├── ArcDLB.cs
│ ├── AudioVOC.cs
│ ├── ImagePDT.cs
│ ├── ImagePDT5.cs
│ └── PdtBitmap.cs
├── BRoom
│ ├── ArcCPC.cs
│ ├── ArcPK.cs
│ ├── AudioEZS.cs
│ └── ImageERP.cs
├── BlackButterfly
│ └── ArcDAT.cs
├── Blucky
│ └── Aliases.cs
├── Bom
│ └── ImageGRP.cs
├── Brownie
│ ├── ArcNAF.cs
│ ├── AudioWAV.cs
│ ├── ImageNGC.cs
│ └── ImageNGW.cs
├── Clio
│ ├── ArcPAC.cs
│ └── ImageEXP.cs
├── CottonClub
│ └── ImageLMG.cs
├── CrossNet
│ ├── AudioADP.cs
│ └── ImageGRB.cs
├── DMotion
│ └── ArcDM.cs
├── Dall
│ └── ArcPEL.cs
├── Desire
│ ├── ArcDSV.cs
│ ├── ImageDES.cs
│ └── ImageDPC.cs
├── Dice
│ ├── ArcRLZ.cs
│ ├── AudioKWF.cs
│ └── ImageRBP.cs
├── DigitalMonkey
│ ├── ArcDM.cs
│ └── ImagePKT.cs
├── Discovery
│ ├── ArcDAT.cs
│ ├── ImageAN1.cs
│ └── ImagePR1.cs
├── EbgSystem
│ └── ArcBIN.cs
├── Electriciteit
│ ├── ArcDAT.cs
│ └── ArcPKK.cs
├── Eve
│ ├── ArcGM.cs
│ └── AudioWV.cs
├── Eye
│ └── ImageCSF.cs
├── Factor
│ └── ArcRES.cs
├── FazeX
│ └── ImageFGP.cs
├── Force
│ ├── ArcPAQ.cs
│ └── ImageDZP.cs
├── GPlay
│ └── ArcYSK.cs
├── Gaia
│ └── ImageJPG.cs
├── Giga
│ └── ArcALL.cs
├── Grocer
│ └── ImagePIC.cs
├── Gsx
│ ├── ArcK3.cs
│ ├── ArcK5.cs
│ ├── ImageK2.cs
│ └── ImageK4.cs
├── Harvest
│ ├── ArcDAT.cs
│ ├── AudioBGM.cs
│ ├── AudioSED.cs
│ └── ImageUNH.cs
├── Hdl
│ ├── ArcHOT.cs
│ └── ImageHOT.cs
├── Herb
│ ├── ArcPAK.cs
│ └── ImageGRP.cs
├── HillField
│ ├── ImageIMA.cs
│ └── ImageIMG.cs
├── HyperWorks
│ ├── ArcPAK.cs
│ ├── ImageG.cs
│ └── ImageI24.cs
├── Hyperspace
│ └── BmpExtension.cs
├── Inspire
│ └── ArcIDA.cs
├── Iris
│ └── ArcFPACK.cs
├── Izumi
│ ├── ImageMAI2.cs
│ └── ImageMAI3.cs
├── Jam
│ └── ImageHTF.cs
├── James
│ └── ImageJMG.cs
├── Jupiter
│ └── ArcLB5.cs
├── KApp
│ ├── ArcASD.cs
│ ├── ArcCGD.cs
│ └── ImageCGD.cs
├── Kasane
│ └── ArcAR2.cs
├── KeroQ
│ ├── ArcDAT.cs
│ ├── ImageCBM.cs
│ ├── ImageKGD.cs
│ └── ImageKGD1.cs
├── Koei
│ ├── ArcYK.cs
│ └── YkTables.cs
├── Kurumi
│ ├── ArcMPK.cs
│ └── ImageGRA.cs
├── Lazycrew
│ ├── ArcDAT.cs
│ └── ImageDAT.cs
├── Legacy.csproj
├── Libido
│ └── ArcARC.cs
├── Liddell
│ ├── ArcFLK.cs
│ └── ImageBPA.cs
├── Logg
│ ├── ArcARF.cs
│ ├── ArcMBM.cs
│ └── ImageFRM.cs
├── Lune
│ └── ArcPACK.cs
├── Mapl
│ └── ImageMI2.cs
├── Marron
│ └── ArcCPN.cs
├── MayBeSoft
│ └── ImageHHP.cs
├── Melody
│ └── ImageMGO.cs
├── Melonpan
│ └── ArcTTD.cs
├── Mermaid
│ ├── AudioPWV.cs
│ ├── ImageGP1.cs
│ └── ImageMG1.cs
├── Miami
│ └── ImageMIA.cs
├── Mina
│ ├── ArcML2.cs
│ ├── ArcPAK.cs
│ └── ImageMD.cs
├── Mink
│ ├── ArcMINK.cs
│ ├── ImageDAT.cs
│ ├── ImageFC.cs
│ ├── ImageFD.cs
│ ├── ImageGDF.cs
│ └── ImageMCP.cs
├── Mmfass
│ └── ArcSDA.cs
├── Muse
│ └── ArcDAT.cs
├── Mutation
│ ├── ArcDPF.cs
│ └── ImageRBM.cs
├── Nabe
│ └── ImageYPF.cs
├── Nekotaro
│ ├── ArcNSC.cs
│ ├── ImageGCmp.cs
│ └── ImageNCG.cs
├── Neon
│ └── ArcAR2.cs
├── Nug
│ └── ArcDAT.cs
├── Nyoken
│ └── ArcZLK.cs
├── Ocarina
│ └── ImageRED.cs
├── Omi
│ └── ArcDAT.cs
├── Pan
│ ├── ArcPAN.cs
│ ├── AudioNSF.cs
│ └── ImageTBL.cs
├── Paprika
│ ├── ArcPKDAT.cs
│ └── ImageNP.cs
├── Pearl
│ ├── ArcARY.cs
│ └── ImagePL4.cs
├── PenguinWorks
│ └── ArcPAC.cs
├── Pias
│ ├── ArcDAT.cs
│ └── EncryptedGraphDat.cs
├── PineSoft
│ ├── ArcCMB.cs
│ ├── ArcVoice.cs
│ ├── AudioCMB.cs
│ └── ImageBPD.cs
├── Pinky
│ └── ArcA5R.cs
├── Pinpai
│ └── ArcARC.cs
├── Pisckiss
│ ├── Audio0.cs
│ └── Image1.cs
├── PlanTech
│ ├── ArcPAC.cs
│ └── ImagePAC.cs
├── Pochette
│ ├── ArcPAC.cs
│ └── ImageGDT.cs
├── Ponytail
│ ├── ArcBND.cs
│ ├── ImageTCZ.cs
│ └── ImageTSZ.cs
├── Powerd
│ └── ImageNCL.cs
├── PrimeSoft
│ └── ImageTHP.cs
├── ProjectMyu
│ ├── ImageGAM.cs
│ └── ImageKGR.cs
├── Properties
│ └── AssemblyInfo.cs
├── QSoft
│ └── ImageBPE.cs
├── README.md
├── RSystem
│ ├── ArcRAD.cs
│ └── ImageRSG.cs
├── Rain
│ └── ArcBIN.cs
├── Ransel
│ └── ArcBCD.cs
├── Rare
│ └── ArcX.cs
├── RedZone
│ ├── ArcPAK.cs
│ └── ScriptQDO.cs
├── Regrips
│ ├── AudioWRG.cs
│ └── ImagePRG.cs
├── Rhss
│ └── ArcCRG.cs
├── Rina
│ └── ImageRAD.cs
├── Rune
│ └── ArcYK.cs
├── Saiki
│ └── ImageJPX.cs
├── Sarang
│ └── ImageABC.cs
├── Sceplay
│ ├── ArcPAK.cs
│ └── ImageG24.cs
├── ShapeShifter
│ └── ArcBND.cs
├── Sogna
│ └── ArcSGS.cs
├── Sophia
│ └── ArcNOR.cs
├── SplushWave
│ ├── ArcDAT.cs
│ └── ImageSWG.cs
├── SquadraD
│ ├── ArcPLA.cs
│ └── ArcSDA.cs
├── StudioEbisu
│ └── ArcEP1.cs
├── StudioFoma
│ └── ArcARC.cs
├── System21
│ ├── ArcPAK.cs
│ ├── ImageBET.cs
│ └── ImageTEX.cs
├── System98
│ ├── ArcLIB.cs
│ └── ImageG.cs
├── SystemAqua
│ └── ArcDAT.cs
├── Tako
│ └── ArcMPK.cs
├── Tetratech
│ └── ArcBND.cs
├── Tiare
│ └── ImageGRA.cs
├── Tigerman
│ ├── ArcCHR.cs
│ ├── ArcPAC.cs
│ └── ImageCHR.cs
├── Tobe
│ └── ImageWBI.cs
├── Tsd
│ └── ArcMCD.cs
├── Types
│ ├── ArcARC.cs
│ └── ImageTPGF.cs
├── UMeSoft
│ ├── ArcBIN.cs
│ ├── AudioIKE.cs
│ ├── AudioSTR.cs
│ └── ImageIKE.cs
├── Ucom
│ └── ImageUG.cs
├── Uma
│ ├── ArcCDT.cs
│ └── ArcSDT.cs
├── Uncanny
│ ├── AudioCWV.cs
│ └── ImageCII.cs
├── Unison
│ └── ArcVCT.cs
├── Unknown
│ ├── ArcAQA.cs
│ ├── ArcDAT.cs
│ ├── AudioMSF.cs
│ └── ImageCTF.cs
├── Uran
│ ├── ArcNCL.cs
│ ├── ArcPHS.cs
│ ├── ImageDAR.cs
│ └── ImageNCL.cs
├── Weapon
│ ├── ArcDAT.cs
│ └── ArcVoice.cs
├── WestGate
│ ├── ArcUCA.cs
│ ├── ArcUSF.cs
│ ├── ArcUWF.cs
│ └── ImageNBMP.cs
├── Wing
│ └── ImageGEM.cs
├── Witch
│ ├── ArcARC.cs
│ ├── ArcDAT.cs
│ ├── ArcPCD.cs
│ └── ArcVBD.cs
├── Yaneurao
│ ├── ArcDAT.cs
│ ├── ArcSDA.cs
│ ├── ImageGTO.cs
│ └── ImageYGA.cs
├── YellowCap
│ ├── ImageGEF.cs
│ └── ImageGGF.cs
├── Zenos
│ └── ImagePNX.cs
├── Zone
│ ├── ArcPKD.cs
│ └── ImageBM_.cs
├── app.config
├── hmp
│ ├── ImageALP.cs
│ ├── ImageCBF.cs
│ └── ImageMBP.cs
└── packages.config
├── Net20
├── Gx4Lib
│ └── PackageFile.cs
├── Net20.csproj
├── Properties
│ └── AssemblyInfo.cs
└── README.md
├── README.md
├── docs
├── supported.html
└── version.xml
├── inc-revision.pl
└── packages
└── repositories.config
/.gitattributes:
--------------------------------------------------------------------------------
1 | # enabling this marks the whole repository as changed
2 | #* text=auto
3 | #*.txt text
4 | #*.xaml eol=crlf
5 |
6 | # Custom for Visual Studio
7 | *.cs diff=csharp
8 | *.sln merge=union
9 | *.csproj merge=union
10 | *.vbproj merge=union
11 | *.fsproj merge=union
12 | *.dbproj merge=union
13 |
14 | # Standard to msysgit
15 | *.doc diff=astextplain
16 | *.DOC diff=astextplain
17 | *.docx diff=astextplain
18 | *.DOCX diff=astextplain
19 | *.dot diff=astextplain
20 | *.DOT diff=astextplain
21 | *.pdf diff=astextplain
22 | *.PDF diff=astextplain
23 | *.rtf diff=astextplain
24 | *.RTF diff=astextplain
25 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | bin
2 | obj
3 | tags
4 | *.exe
5 | *.dll
6 | *.pdb
7 | *.suo
8 | *.pfx
9 | *.psess
10 | *.vsp
11 | *;*
12 | *~
13 | Images
14 | SchemeBuilder
15 | Makefile
16 | packages
17 | Experimental
18 | .nuget
19 | .vs
20 |
--------------------------------------------------------------------------------
/ArcFormats/AZSys/WidgetAZ.xaml:
--------------------------------------------------------------------------------
1 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/ArcFormats/AZSys/WidgetAZ.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using GameRes.Formats.AZSys;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetAZ.xaml
10 | ///
11 | public partial class WidgetAZ : StackPanel
12 | {
13 | public WidgetAZ()
14 | {
15 | InitializeComponent();
16 | Scheme.ItemsSource = ArcOpener.KnownKeys.Keys.OrderBy (x => x);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/ArcFormats/Abogado/keytable.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/Abogado/keytable.dat
--------------------------------------------------------------------------------
/ArcFormats/Ail/ArcLNK2.cs:
--------------------------------------------------------------------------------
1 | //! \file ArcLNK2.cs
2 | //! \date 2018 Jan 04
3 | //! \brief Ail resource archive.
4 | //
5 | // Copyright (C) 2018 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System;
27 | using System.Collections.Generic;
28 | using System.ComponentModel.Composition;
29 | using System.IO;
30 |
31 | namespace GameRes.Formats.Ail
32 | {
33 | [Export(typeof(ArchiveFormat))]
34 | public class Lnk2Opener : DatOpener
35 | {
36 | public override string Tag { get { return "DAT/LNK2"; } }
37 | public override string Description { get { return "Ail resource archive"; } }
38 | public override uint Signature { get { return 0x324B4E4C; } } // 'LNK2'
39 | public override bool IsHierarchic { get { return false; } }
40 | public override bool CanWrite { get { return false; } }
41 |
42 | public Lnk2Opener ()
43 | {
44 | Extensions = new string[] { "dat" };
45 | }
46 |
47 | public override ArcFile TryOpen (ArcView file)
48 | {
49 | int count = file.View.ReadInt32 (4)*2;
50 | if (!IsSaneCount (count))
51 | return null;
52 | var dir = ReadIndex (file, 8, count);
53 | if (null == dir)
54 | return null;
55 | return new ArcFile (file, this, dir);
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/ArcFormats/Amaterasu/CreateAMIWidget.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
12 |
13 |
14 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/ArcFormats/Amaterasu/CreateAMIWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using System.Windows.Media;
5 | using GameRes.Formats.Strings;
6 | using Microsoft.Win32;
7 |
8 | namespace GameRes.Formats.GUI
9 | {
10 | ///
11 | /// Interaction logic for CreateAMIWidget.xaml
12 | ///
13 | public partial class CreateAMIWidget : Grid
14 | {
15 | public CreateAMIWidget ()
16 | {
17 | InitializeComponent ();
18 | }
19 |
20 | private void Browse_Click (object sender, RoutedEventArgs e)
21 | {
22 | string initial = BaseArchive.Text;
23 | string dir = ".";
24 | if (!string.IsNullOrEmpty (initial))
25 | {
26 | var parent = Directory.GetParent (initial);
27 | if (null != parent)
28 | {
29 | dir = parent.FullName;
30 | initial = Path.GetFileName (initial);
31 | }
32 | }
33 | dir = Path.GetFullPath (dir);
34 | var dlg = new OpenFileDialog {
35 | CheckFileExists = true,
36 | CheckPathExists = true,
37 | FileName = initial,
38 | InitialDirectory = dir,
39 | Multiselect = false,
40 | Title = arcStrings.AMIChooseBase,
41 | };
42 | var owner = FindVisualParent (this);
43 | if (dlg.ShowDialog (owner).Value && !string.IsNullOrEmpty (dlg.FileName))
44 | BaseArchive.Text = dlg.FileName;
45 | }
46 |
47 | static parentItem FindVisualParent (DependencyObject obj) where parentItem : DependencyObject
48 | {
49 | if (null == obj)
50 | return null;
51 | DependencyObject parent = VisualTreeHelper.GetParent (obj);
52 | while (parent != null && !(parent is parentItem))
53 | {
54 | parent = VisualTreeHelper.GetParent (parent);
55 | }
56 | return parent as parentItem;
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/ArcFormats/AnimeGameSystem/WidgetAGS.xaml:
--------------------------------------------------------------------------------
1 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/ArcFormats/AnimeGameSystem/WidgetAGS.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using System.Windows.Controls;
4 | using GameRes.Formats.Ags;
5 | using GameRes.Formats.Strings;
6 |
7 | namespace GameRes.Formats.GUI
8 | {
9 | ///
10 | /// Interaction logic for WidgetAGS.xaml
11 | ///
12 | public partial class WidgetAGS : StackPanel
13 | {
14 | public WidgetAGS (IEnumerable known_titles)
15 | {
16 | InitializeComponent();
17 | var keys = new string[] { arcStrings.ArcNoEncryption };
18 | Scheme.ItemsSource = keys.Concat (known_titles.OrderBy (x => x));
19 | if (-1 == Scheme.SelectedIndex)
20 | Scheme.SelectedIndex = 0;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ArcFormats/Aoi/AudioAOG.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioAOG.cs
2 | //! \date Sun Jan 17 08:38:31 2016
3 | //! \brief Aoi engine audio format (Ogg/Vorbis).
4 | //
5 | // Copyright (C) 2016 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using GameRes.Utility;
27 | using System.ComponentModel.Composition;
28 | using System.IO;
29 |
30 | namespace GameRes.Formats.Aoi
31 | {
32 | [Export(typeof(AudioFormat))]
33 | public class AogAudio : AudioFormat
34 | {
35 | public override string Tag { get { return "AOG"; } }
36 | public override string Description { get { return "Aoi engine audio format"; } }
37 | public override uint Signature { get { return 0x4F696F41; } } // 'AoiO'
38 |
39 | public override SoundInput TryOpen (IBinaryStream file)
40 | {
41 | var header = file.ReadHeader (0x3C);
42 | if (!header.AsciiEqual (0, "AoiOgg"))
43 | return null;
44 | Stream ogg;
45 | if (header.AsciiEqual (0x2C, "OggS"))
46 | ogg = new StreamRegion (file.AsStream, 0x2C);
47 | else if (header.AsciiEqual (0xC, "Decode") && header.AsciiEqual (0x38, "OggS"))
48 | ogg = new StreamRegion (file.AsStream, 0x38);
49 | else
50 | return null;
51 | return new OggInput (ogg);
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/ArcFormats/C4/AudioVMD.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioVMD.cs
2 | //! \date Fri Jan 20 08:35:26 2017
3 | //! \brief C4 engine obfuscated MP3 audio.
4 | //
5 | // Copyright (C) 2017 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 | using System.IO;
28 |
29 | namespace GameRes.Formats.C4
30 | {
31 | [Export(typeof(AudioFormat))]
32 | public class VmdAudio : AudioFormat
33 | {
34 | public override string Tag { get { return "VMD"; } }
35 | public override string Description { get { return "C4 engine MP3 audio"; } }
36 | public override uint Signature { get { return 0; } }
37 | public override bool CanWrite { get { return false; } }
38 |
39 | const byte Key = 0xE5;
40 |
41 | public override SoundInput TryOpen (IBinaryStream file)
42 | {
43 | var header = file.ReadHeader (3);
44 | if (0xFF != (header[0] ^ Key) || 0xE2 != ((header[1] ^ Key) & 0xE6) ||
45 | 0xF0 == ((header[2] ^ Key) & 0xF0))
46 | return null;
47 | file.Position = 0;
48 | var input = new XoredStream (file.AsStream, Key);
49 | return new Mp3Input (input);
50 | }
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/ArcFormats/CatSystem/CreateINTWidget.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/ArcFormats/CatSystem/CreateINTWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace GameRes.Formats.GUI
4 | {
5 | ///
6 | /// Interaction logic for CreateINTWidget.xaml
7 | ///
8 | public partial class CreateINTWidget : Grid
9 | {
10 | public CreateINTWidget ()
11 | {
12 | InitializeComponent ();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ArcFormats/Crowd/AudioEOG.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioEOG.cs
2 | //! \date Thu Jun 11 12:46:35 2015
3 | //! \brief Crowd engine audio file.
4 | //
5 | // Copyright (C) 2015 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System;
27 | using System.ComponentModel.Composition;
28 | using System.IO;
29 |
30 | namespace GameRes.Formats.Crowd
31 | {
32 | [Export(typeof(AudioFormat))]
33 | public class EogAudio : AudioFormat
34 | {
35 | public override string Tag { get { return "EOG"; } }
36 | public override string Description { get { return "Crowd engine audio format (Ogg/Vorbis)"; } }
37 | public override uint Signature { get { return 0x004D5243; } } // 'CRM'
38 |
39 | public EogAudio ()
40 | {
41 | Extensions = new string[] { "eog", "amb" };
42 | }
43 |
44 | public override SoundInput TryOpen (IBinaryStream file)
45 | {
46 | var ogg = new StreamRegion (file.AsStream, 8);
47 | return new OggInput (ogg);
48 | // in case of exception ogg stream is left undisposed
49 | }
50 |
51 | public override void Write (SoundInput source, Stream output)
52 | {
53 | throw new System.NotImplementedException ("EogFormat.Write not implemenented");
54 | }
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/ArcFormats/Cyberworks/WidgetBELL.xaml:
--------------------------------------------------------------------------------
1 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/ArcFormats/Cyberworks/WidgetBELL.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Windows.Controls;
3 | using GameRes.Formats.Cyberworks;
4 | using GameRes.Formats.Strings;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetBELL.xaml
10 | ///
11 | public partial class WidgetBELL : StackPanel
12 | {
13 | public WidgetBELL()
14 | {
15 | InitializeComponent();
16 | var keys = new string[] { arcStrings.ArcIgnoreEncryption };
17 | Title.ItemsSource = keys.Concat (DatOpener.KnownSchemes.Keys.OrderBy (x => x));
18 | if (-1 == Title.SelectedIndex)
19 | Title.SelectedIndex = 0;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/Dac/WidgetDPK.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
19 |
23 |
26 |
29 |
31 |
33 |
34 |
--------------------------------------------------------------------------------
/ArcFormats/Dac/WidgetDPK.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using GameRes.Formats.Dac;
3 | using GameRes.Formats.Properties;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for WidgetDPK.xaml
9 | ///
10 | public partial class WidgetDPK : Grid
11 | {
12 | public WidgetDPK ()
13 | {
14 | InitializeComponent ();
15 | var last_scheme = EncScheme.SelectedItem as DpkScheme;
16 | if (null == last_scheme)
17 | last_scheme = DpkOpener.KnownSchemes[0];
18 | uint key1 = Settings.Default.DPKKey1;
19 | uint key2 = Settings.Default.DPKKey2;
20 | if (last_scheme.Key1 != key1 || last_scheme.Key2 != key2)
21 | EncScheme.SelectedIndex = -1;
22 | else if (null == EncScheme.SelectedItem)
23 | EncScheme.SelectedIndex = 0;
24 | Key1.Text = key1.ToString ("X");
25 | Key2.Text = key2.ToString ("X8");
26 |
27 | EncScheme.SelectionChanged += OnSchemeChanged;
28 | }
29 |
30 | void OnSchemeChanged (object sender, SelectionChangedEventArgs e)
31 | {
32 | var widget = sender as ComboBox;
33 | var scheme = widget.SelectedItem as DpkScheme;
34 | if (null != scheme)
35 | {
36 | Key1.Text = scheme.Key1.ToString ("X");
37 | Key2.Text = scheme.Key2.ToString ("X8");
38 | }
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ArcFormats/DraftArc.cs:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2023 by morkt
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to
5 | // deal in the Software without restriction, including without limitation the
6 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | // sell copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 | //
10 | // The above copyright notice and this permission notice shall be included in
11 | // all copies or substantial portions of the Software.
12 | //
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | // IN THE SOFTWARE.
20 | //
21 |
22 | using System;
23 | using System.Collections.Generic;
24 | using System.ComponentModel.Composition;
25 | using System.IO;
26 |
27 | namespace GameRes.Formats.??????
28 | {
29 | [Export(typeof(ArchiveFormat))]
30 | public class PakOpener : ArchiveFormat
31 | {
32 | public override string Tag => "ARC";
33 | public override string Description => "?????? engine resource archive";
34 | public override uint Signature => 0;
35 | public override bool IsHierarchic => false;
36 | public override bool CanWrite => false;
37 |
38 | public override ArcFile TryOpen (ArcView file)
39 | {
40 | int count = file.View.ReadInt16 (0);
41 | if (!IsSaneCount (count))
42 | return null;
43 |
44 | var dir = new List (count);
45 | for (int i = 0; i < count; ++i)
46 | {
47 | var entry = Create (name);
48 | if (!entry.CheckPlacement (file.MaxOffset))
49 | return null;
50 | dir.Add (entry);
51 | }
52 | return new ArcFile (file, this, dir);
53 | }
54 |
55 | public override Stream OpenEntry (ArcFile arc, Entry entry)
56 | {
57 | return base.OpenEntry (arc, entry);
58 | }
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/ArcFormats/DraftAudio.cs:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2023 by morkt
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to
5 | // deal in the Software without restriction, including without limitation the
6 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | // sell copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 | //
10 | // The above copyright notice and this permission notice shall be included in
11 | // all copies or substantial portions of the Software.
12 | //
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | // IN THE SOFTWARE.
20 | //
21 |
22 | using System.ComponentModel.Composition;
23 |
24 | namespace GameRes.Formats.??????
25 | {
26 | [Export(typeof(AudioFormat))]
27 | public class xxxAudio : AudioFormat
28 | {
29 | public override string Tag => "xxx";
30 | public override string Description => "?????? audio resource";
31 | public override uint Signature => 0;
32 | public override bool CanWrite => false;
33 |
34 | public override SoundInput TryOpen (IBinaryStream file)
35 | {
36 | var format = new WaveFormat {
37 | FormatTag = 1,
38 | Channels = 1,
39 | SamplesPerSecond = 44100,
40 | BlockAlign = 2,
41 | BitsPerSample = 16,
42 | };
43 | format.SetBPS();
44 | return new RawPcmInput (file.AsStream, format);
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/ArcFormats/DraftImage.cs:
--------------------------------------------------------------------------------
1 | // Copyright (C) 2023 by morkt
2 | //
3 | // Permission is hereby granted, free of charge, to any person obtaining a copy
4 | // of this software and associated documentation files (the "Software"), to
5 | // deal in the Software without restriction, including without limitation the
6 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 | // sell copies of the Software, and to permit persons to whom the Software is
8 | // furnished to do so, subject to the following conditions:
9 | //
10 | // The above copyright notice and this permission notice shall be included in
11 | // all copies or substantial portions of the Software.
12 | //
13 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
19 | // IN THE SOFTWARE.
20 | //
21 |
22 | using System.ComponentModel.Composition;
23 | using System.IO;
24 | using System.Windows.Media;
25 |
26 | namespace GameRes.Formats.??????
27 | {
28 | [Export(typeof(ImageFormat))]
29 | public class xxxFormat : ImageFormat
30 | {
31 | public override string Tag => "xxx";
32 | public override string Description => "?????? image format";
33 | public override uint Signature => 0;
34 |
35 | public override ImageMetaData ReadMetaData (IBinaryStream file)
36 | {
37 | }
38 |
39 | public override ImageData Read (IBinaryStream file, ImageMetaData info)
40 | {
41 | var meta = (xxxMetaData)info;
42 |
43 | return ImageData.Create (info, format, palette, pixels);
44 | }
45 |
46 | public override void Write (Stream file, ImageData image)
47 | {
48 | throw new System.NotImplementedException ("xxxFormat.Write not implemented");
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/ArcFormats/DxLib/WidgetSCR.xaml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/DxLib/WidgetSCR.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System.Linq;
3 | using GameRes.Formats.DxLib;
4 | using GameRes.Formats.Strings;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetSCR.xaml
10 | ///
11 | public partial class WidgetSCR : StackPanel
12 | {
13 | public WidgetSCR()
14 | {
15 | InitializeComponent();
16 | var keys = new string[] { arcStrings.ArcIgnoreEncryption };
17 | ScriptScheme.ItemsSource = keys.Concat (MedOpener.KnownSchemes.Keys.OrderBy (x => x));
18 | if (-1 == ScriptScheme.SelectedIndex)
19 | ScriptScheme.SelectedIndex = 0;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/Eagls/WidgetEAGLS.xaml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/Eagls/WidgetEAGLS.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System.Linq;
3 | using GameRes.Formats.Eagls;
4 | using GameRes.Formats.Strings;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetEAGLS.xaml
10 | ///
11 | public partial class WidgetEAGLS : StackPanel
12 | {
13 | public WidgetEAGLS ()
14 | {
15 | InitializeComponent ();
16 | var schemes = new string[] { arcStrings.ArcIgnoreEncryption };
17 | Scheme.ItemsSource = schemes.Concat (PakOpener.KnownSchemes.Keys);
18 | if (-1 == Scheme.SelectedIndex)
19 | Scheme.SelectedValue = PakOpener.KnownSchemes.First().Key;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/EmbeddedResource.cs:
--------------------------------------------------------------------------------
1 | //! \file EmbeddedResource.cs
2 | //! \date 2018 Apr 10
3 | //! \brief Embedded resource loader.
4 | //
5 | // Copyright (C) 2018 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System;
27 | using System.IO;
28 |
29 | namespace GameRes.Formats
30 | {
31 | public static class EmbeddedResource
32 | {
33 | ///
34 | /// Open embedded resource as a stream.
35 | ///
36 | public static Stream Open (string name, Type owner)
37 | {
38 | var assembly = owner.Assembly;
39 | string qualified_name = owner.Namespace + '.' + name;
40 | return assembly.GetManifestResourceStream (qualified_name);
41 | }
42 |
43 | ///
44 | /// Load binary embedded resource as a byte array.
45 | ///
46 | public static byte[] Load (string name, Type owner)
47 | {
48 | using (var stream = Open (name, owner))
49 | {
50 | if (null == stream)
51 | return null;
52 | var res = new byte[stream.Length];
53 | stream.Read (res, 0, res.Length);
54 | return res;
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/ArcFormats/Entis/WidgetNOA.xaml:
--------------------------------------------------------------------------------
1 |
7 |
10 |
11 |
--------------------------------------------------------------------------------
/ArcFormats/Entis/WidgetNOA.xaml.cs:
--------------------------------------------------------------------------------
1 | using GameRes.Formats.Entis;
2 | using GameRes.Formats.Strings;
3 | using System.Linq;
4 | using System.Windows.Controls;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetNOA.xaml
10 | ///
11 | public partial class WidgetNOA : Grid
12 | {
13 | public WidgetNOA ()
14 | {
15 | InitializeComponent ();
16 | var keys = new string[] { arcStrings.ArcIgnoreEncryption };
17 | Scheme.ItemsSource = keys.Concat (NoaOpener.KnownKeys.Keys.OrderBy (x => x));
18 | // select first scheme as default
19 | if (-1 == Scheme.SelectedIndex)
20 | Scheme.SelectedIndex = 0;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ArcFormats/Ethornell/AudioBGI.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioBGI.cs
2 | //! \date Sat Aug 29 21:44:06 2015
3 | //! \brief BURIKO engine audio file (Ogg/Vorbis)
4 | //
5 | // Copyright (C) 2015 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 | using System.IO;
28 | using GameRes.Utility;
29 |
30 | namespace GameRes.Formats.BGI
31 | {
32 | [Export(typeof(AudioFormat))]
33 | public class BgiAudio : AudioFormat
34 | {
35 | public override string Tag { get { return "BW"; } }
36 | public override string Description { get { return "BGI/Ethornell engine audio (Ogg/Vorbis)"; } }
37 | public override uint Signature { get { return 0; } }
38 |
39 | public BgiAudio ()
40 | {
41 | Signatures = new uint[] { 0x40, 0 };
42 | Extensions = new string[] { "bw", "", "_bw" };
43 | }
44 |
45 | public override SoundInput TryOpen (IBinaryStream file)
46 | {
47 | var header = file.ReadHeader (8);
48 | if (!header.AsciiEqual (4, "bw "))
49 | return null;
50 | uint offset = header.ToUInt32 (0);
51 | if (offset >= file.Length)
52 | return null;
53 |
54 | var input = new StreamRegion (file.AsStream, offset);
55 | return new OggInput (input);
56 | // input is left undisposed in case of exception.
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/ArcFormats/Eushully/AudioAOG.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioAOG.cs
2 | //! \date 2018 Jun 13
3 | //! \brief System3 engine audio format.
4 | //
5 | // Copyright (C) 2018 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 |
28 | namespace GameRes.Formats.Eushully
29 | {
30 | [Export(typeof(AudioFormat))]
31 | public class AogAudio : AudioFormat
32 | {
33 | public override string Tag { get { return "AOG/SYS3"; } }
34 | public override string Description { get { return "System3 engine audio format"; } }
35 | public override uint Signature { get { return 0x47474F41; } } // 'AOGG'
36 |
37 | public override SoundInput TryOpen (IBinaryStream file)
38 | {
39 | var header = file.ReadHeader (0x18);
40 | if (!header.AsciiEqual (0x14, "OggS"))
41 | return null;
42 | var ogg = new StreamRegion (file.AsStream, 0x14);
43 | return new OggInput (ogg);
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/ArcFormats/ExHibit/WidgetGYU.xaml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/ExHibit/WidgetGYU.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Windows.Controls;
3 |
4 | namespace GameRes.Formats.GUI
5 | {
6 | ///
7 | /// Interaction logic for WidgetGYU.xaml
8 | ///
9 | public partial class WidgetGYU : StackPanel
10 | {
11 | public WidgetGYU (IEnumerable titles)
12 | {
13 | InitializeComponent();
14 | Title.ItemsSource = titles;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ArcFormats/FC01/WidgetMCG.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/ArcFormats/FlyingShine/CreatePDWidget.xaml:
--------------------------------------------------------------------------------
1 |
6 |
8 |
9 |
--------------------------------------------------------------------------------
/ArcFormats/FlyingShine/CreatePDWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace GameRes.Formats.GUI
4 | {
5 | ///
6 | /// Interaction logic for CreatePDWidget.xaml
7 | ///
8 | public partial class CreatePDWidget : Grid
9 | {
10 | public CreatePDWidget ()
11 | {
12 | InitializeComponent ();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ArcFormats/Ice/ScriptISD.cs:
--------------------------------------------------------------------------------
1 | //! \file ScriptISD.cs
2 | //! \date 2023 Aug 25
3 | //! \brief Ice Soft compressed binary script.
4 | //
5 | // Copyright (C) 2023 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using GameRes.Formats.Ankh;
27 | using System.ComponentModel.Composition;
28 | using System.IO;
29 |
30 | namespace GameRes.Formats.Ice
31 | {
32 | [Export(typeof(ScriptFormat))]
33 | public class IsdScript : GenericScriptFormat
34 | {
35 | public override string Tag { get => "ISD"; }
36 | public override string Description { get => "Ice Soft binary script"; }
37 | public override uint Signature { get => 0x01575054; } // 'TPW'
38 |
39 | public override bool IsScript (IBinaryStream file)
40 | {
41 | return file.Signature == Signature;
42 | }
43 |
44 | public override Stream ConvertFrom (IBinaryStream file)
45 | {
46 | file.Position = 4;
47 | int unpacked_size = file.ReadInt32();
48 | var data = new byte[unpacked_size];
49 | GrpOpener.UnpackTpw (file, data);
50 | return new BinMemoryStream (data, file.Name);
51 | }
52 |
53 | public override Stream ConvertBack (IBinaryStream file)
54 | {
55 | throw new System.NotImplementedException();
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/ArcFormats/Ikura/WidgetISF.xaml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/Ikura/WidgetISF.xaml.cs:
--------------------------------------------------------------------------------
1 | using GameRes.Formats.Ikura;
2 | using GameRes.Formats.Strings;
3 | using System.Linq;
4 | using System.Windows.Controls;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetISF.xaml
10 | ///
11 | public partial class WidgetISF : StackPanel
12 | {
13 | public WidgetISF ()
14 | {
15 | InitializeComponent ();
16 | var keys = new string[] { arcStrings.ArcIgnoreEncryption};
17 | Scheme.ItemsSource = keys.Concat (MpxOpener.KnownSecrets.Keys.OrderBy (x => x));
18 | if (-1 == Scheme.SelectedIndex)
19 | Scheme.SelectedIndex = 0;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/Key/AudioOGGPAK.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioOGGPAK.cs
2 | //! \date 2019 Mar 29
3 | //! \brief Key audio resource.
4 | //
5 | // Copyright (C) 2019 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 |
28 | namespace GameRes.Formats.Key
29 | {
30 | [Export(typeof(AudioFormat))]
31 | public class OggPakAudio : AudioFormat
32 | {
33 | public override string Tag { get { return "OGGPAK"; } }
34 | public override string Description { get { return "Key audio resource"; } }
35 | public override uint Signature { get { return 0x5047474F; } } // 'OGGPAK'
36 | public override bool CanWrite { get { return false; } }
37 |
38 | public override SoundInput TryOpen (IBinaryStream file)
39 | {
40 | var header = file.ReadHeader (0xF);
41 | if (!header.AsciiEqual ("OGGPAK"))
42 | return null;
43 | uint length = header.ToUInt32 (0xB);
44 | var input = new StreamRegion (file.AsStream, 0xF, length);
45 | return new OggInput (input);
46 | }
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/ArcFormats/KiriKiri/CreateXP3Widget.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
29 |
31 |
33 |
34 |
--------------------------------------------------------------------------------
/ArcFormats/KiriKiri/CreateXP3Widget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace GameRes.Formats.GUI
5 | {
6 | ///
7 | /// Interaction logic for CreateXP3Widget.xaml
8 | ///
9 | public partial class CreateXP3Widget : Grid
10 | {
11 | public CreateXP3Widget ()
12 | {
13 | InitializeComponent ();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ArcFormats/KiriKiri/WidgetXP3.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
14 |
16 |
17 |
--------------------------------------------------------------------------------
/ArcFormats/KiriKiri/WidgetXP3.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Windows.Controls;
5 | using System.Windows.Data;
6 | using GameRes.Formats.KiriKiri;
7 | using GameRes.Formats.Strings;
8 |
9 | namespace GameRes.Formats.GUI
10 | {
11 | ///
12 | /// Interaction logic for WidgetXP3.xaml
13 | ///
14 | public partial class WidgetXP3 : StackPanel
15 | {
16 | public WidgetXP3 ()
17 | {
18 | var last_selected = Properties.Settings.Default.XP3Scheme;
19 | InitializeComponent();
20 | var keys = new[] { new KeyValuePair (arcStrings.ArcNoEncryption, Xp3Opener.NoCryptAlgorithm) };
21 | this.DataContext = keys.Concat (Xp3Opener.KnownSchemes.OrderBy (x => x.Key));
22 | this.Loaded += (s, e) => {
23 | if (!string.IsNullOrEmpty (last_selected))
24 | this.Scheme.SelectedValue = last_selected;
25 | else
26 | this.Scheme.SelectedIndex = 0;
27 | };
28 | }
29 |
30 | public ICrypt GetScheme ()
31 | {
32 | return Xp3Opener.GetScheme (Scheme.SelectedValue as string);
33 | }
34 | }
35 |
36 | internal class ClassNameConverter : IValueConverter
37 | {
38 | public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
39 | {
40 | if (value != null)
41 | return value.GetType().Name;
42 | else
43 | return "";
44 | }
45 |
46 | public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
47 | {
48 | throw new NotImplementedException();
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/ArcFormats/Leaf/AudioP16.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioP16.cs
2 | //! \date 2018 Nov 06
3 | //! \brief Leaf PCM audio format.
4 | //
5 | // Copyright (C) 2018 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 |
28 | namespace GameRes.Formats.Leaf
29 | {
30 | [Export(typeof(AudioFormat))]
31 | public sealed class P16Audio : AudioFormat
32 | {
33 | public override string Tag { get { return "P16"; } }
34 | public override string Description { get { return "Leaf PCM audio format"; } }
35 | public override uint Signature { get { return 0; } }
36 | public override bool CanWrite { get { return false; } }
37 |
38 | public override SoundInput TryOpen (IBinaryStream file)
39 | {
40 | if (!file.Name.HasExtension ("P16"))
41 | return null;
42 | var format = new WaveFormat {
43 | FormatTag = 1,
44 | Channels = 1,
45 | SamplesPerSecond = 44100,
46 | AverageBytesPerSecond = 88200,
47 | BlockAlign = 2,
48 | BitsPerSample = 16,
49 | };
50 | return new RawPcmInput (file.AsStream, format);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/ArcFormats/Leaf/WidgetLEAF.xaml:
--------------------------------------------------------------------------------
1 |
8 |
10 |
11 |
--------------------------------------------------------------------------------
/ArcFormats/Leaf/WidgetLEAF.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using System.Windows.Controls;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for WidgetLEAF.xaml
9 | ///
10 | public partial class WidgetLEAF : StackPanel
11 | {
12 | public WidgetLEAF (IEnumerable titles)
13 | {
14 | this.InitializeComponent();
15 | this.DataContext = titles.OrderBy (x => x);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ArcFormats/LiveMaker/WidgetGAL.xaml:
--------------------------------------------------------------------------------
1 |
8 |
11 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/ArcFormats/LiveMaker/WidgetGAL.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Linq;
5 | using System.Windows.Controls;
6 | using System.Windows.Data;
7 | using GameRes.Formats.LiveMaker;
8 | using GameRes.Formats.Properties;
9 | using GameRes.Formats.Strings;
10 |
11 | namespace GameRes.Formats.GUI
12 | {
13 | ///
14 | /// Interaction logic for WidgetGAL.xaml
15 | ///
16 | public partial class WidgetGAL : StackPanel
17 | {
18 | public WidgetGAL (IDictionary known_keys)
19 | {
20 | InitializeComponent();
21 | var first_item = new KeyValuePair (arcStrings.ArcIgnoreEncryption, "");
22 | var items = new KeyValuePair[] { first_item };
23 | this.Title.ItemsSource = items.Concat (known_keys.OrderBy (x => x.Key));
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ArcFormats/Lucifen/WidgetLPK.xaml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/Lucifen/WidgetLPK.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 | using GameRes.Formats.Properties;
4 | using GameRes.Formats.Strings;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetWARC.xaml
10 | ///
11 | public partial class WidgetLPK : Grid
12 | {
13 | public WidgetLPK ()
14 | {
15 | InitializeComponent();
16 | // select default scheme
17 | if (-1 == Scheme.SelectedIndex)
18 | Scheme.SelectedIndex = 0;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/ArcFormats/Macromedia/AudioEDIM.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioEDIM.cs
2 | //! \date Fri Jun 26 06:52:33 2015
3 | //! \brief Macromedia Director wrapper around MP3 stream.
4 | //
5 | // Copyright (C) 2015 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 | using System.IO;
28 | using GameRes.Utility;
29 |
30 | namespace GameRes.Formats.Selen
31 | {
32 | [Export(typeof(AudioFormat))]
33 | public class EdimAudio : Mp3Audio
34 | {
35 | public override string Tag { get { return "EDIM"; } }
36 | public override string Description { get { return "Macromedia Director audio format (MP3)"; } }
37 | public override uint Signature { get { return 0x40010000; } }
38 | public override bool CanWrite { get { return false; } }
39 |
40 | public EdimAudio ()
41 | {
42 | Signatures = new uint[] { 0x40010000, 0x64010000 };
43 | }
44 |
45 | public override SoundInput TryOpen (IBinaryStream file)
46 | {
47 | uint offset = 4 + Binary.BigEndian (file.Signature);
48 | var mp3 = new StreamRegion (file.AsStream, offset);
49 | return base.TryOpen (new BinaryStream (mp3, file.Name));
50 | }
51 |
52 | public override void Write (SoundInput source, Stream output)
53 | {
54 | throw new System.NotImplementedException ("EdimFormat.Write not implemenented");
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/ArcFormats/Majiro/WidgetRCT.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/ArcFormats/Majiro/WidgetRCT.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Windows.Controls;
3 | using GameRes.Formats.Properties;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for WidgetRCT.xaml
9 | ///
10 | public partial class WidgetRCT : Grid
11 | {
12 | public WidgetRCT ()
13 | {
14 | InitializeComponent ();
15 | this.Password.Text = Settings.Default.RCTPassword;
16 | if (null != this.Title.SelectedItem)
17 | {
18 | var selected = (KeyValuePair)this.Title.SelectedItem;
19 | if (Settings.Default.RCTPassword != selected.Value)
20 | this.Title.SelectedIndex = -1;
21 | }
22 | }
23 |
24 | private void Title_SelectionChanged (object sender, SelectionChangedEventArgs e)
25 | {
26 | if (null != this.Title.SelectedItem && null != this.Password)
27 | {
28 | var selected = (KeyValuePair)this.Title.SelectedItem;
29 | this.Password.Text = selected.Value;
30 | }
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/ArcFormats/MangaGamer/WidgetMGPK.xaml:
--------------------------------------------------------------------------------
1 |
5 |
7 |
8 |
--------------------------------------------------------------------------------
/ArcFormats/MangaGamer/WidgetMGPK.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Windows.Controls;
3 | using GameRes.Formats.Mg;
4 | using GameRes.Formats.Strings;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetMGPK.xaml
10 | ///
11 | public partial class WidgetMGPK : StackPanel
12 | {
13 | public WidgetMGPK()
14 | {
15 | InitializeComponent();
16 | var keys = new string[] { arcStrings.ArcNoEncryption };
17 | Title.ItemsSource = keys.Concat (MgpkOpener.KnownKeys.Keys.OrderBy (x => x));
18 | if (-1 == Title.SelectedIndex)
19 | Title.SelectedIndex = 0;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/Marble/WidgetMBL.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
15 |
17 |
18 |
--------------------------------------------------------------------------------
/ArcFormats/Marble/WidgetMBL.xaml.cs:
--------------------------------------------------------------------------------
1 | using GameRes.Formats.Marble;
2 | using GameRes.Formats.Strings;
3 | using System.Collections.Generic;
4 | using System.Linq;
5 | using System.Windows.Controls;
6 |
7 | namespace GameRes.Formats.GUI
8 | {
9 | ///
10 | /// Interaction logic for WidgetMBL.xaml
11 | ///
12 | public partial class WidgetMBL : Grid
13 | {
14 | public WidgetMBL ()
15 | {
16 | InitializeComponent ();
17 | var keys = new[] { new KeyValuePair (arcStrings.ArcDefault, "") };
18 | EncScheme.ItemsSource = keys.Concat (MblOpener.KnownKeys);
19 | if (-1 == EncScheme.SelectedIndex)
20 | EncScheme.SelectedIndex = 0;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/ArcFormats/MersenneTwister.cs:
--------------------------------------------------------------------------------
1 | //! \file MersenneTwister.cs
2 | //! \date Mon Nov 02 01:57:11 2015
3 | //! \brief Mersenne Twister pseudorandom number generator.
4 | //
5 | // Copyright (C) 1997 Makoto Matsumoto and Takuji Nishimura.
6 | //
7 | // C# port by morkt
8 | //
9 |
10 | namespace GameRes.Cryptography
11 | {
12 | public class MersenneTwister
13 | {
14 | const uint DefaultSeed = 4357;
15 |
16 | const int StateLength = 624;
17 | const int StateM = 397;
18 | const uint MatrixA = 0x9908B0DF;
19 | const uint SignMask = 0x80000000;
20 | const uint LowerMask = 0x7FFFFFFF;
21 | const uint TemperingMaskB = 0x9D2C5680;
22 | const uint TemperingMaskC = 0xEFC60000;
23 |
24 | uint[] mt = new uint[StateLength];
25 | int mti = StateLength;
26 |
27 | public MersenneTwister (uint seed)
28 | {
29 | SRand (seed);
30 | }
31 |
32 | public void SRand (uint seed)
33 | {
34 | for (mti = 0; mti < mt.Length; ++mti)
35 | {
36 | uint upper = seed & 0xffff0000;
37 | seed = 69069 * seed + 1;
38 | mt[mti] = upper | (seed & 0xffff0000) >> 16;
39 | seed = 69069 * seed + 1;
40 | }
41 | }
42 |
43 | uint[] mag01 = { 0, MatrixA };
44 |
45 | public uint Rand ()
46 | {
47 | uint y;
48 |
49 | if (mti >= StateLength)
50 | {
51 | int kk;
52 | for (kk = 0; kk < StateLength - StateM; kk++)
53 | {
54 | y = (mt[kk] & SignMask) | (mt[kk+1] & LowerMask);
55 | mt[kk] = mt[kk + StateM] ^ (y >> 1) ^ mag01[y & 1];
56 | }
57 | for (; kk < StateLength-1; kk++)
58 | {
59 | y = (mt[kk] & SignMask) | (mt[kk+1] & LowerMask);
60 | mt[kk] = mt[kk + StateM - StateLength] ^ (y >> 1) ^ mag01[y & 1];
61 | }
62 | y = (mt[StateLength-1] & SignMask) | (mt[0] & LowerMask);
63 | mt[StateLength-1] = mt[StateM-1] ^ (y >> 1) ^ mag01[y & 1];
64 |
65 | mti = 0;
66 | }
67 |
68 | y = mt[mti++];
69 | y ^= y >> 11;
70 | y ^= (y << 7) & TemperingMaskB;
71 | y ^= (y << 15) & TemperingMaskC;
72 | y ^= y >> 18;
73 |
74 | return y;
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/ArcFormats/MicroVision/AudioIKM.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioIKM.cs
2 | //! \date Fri Mar 24 00:01:54 2017
3 | //! \brief MicroVision audio format (Ogg/vorbis).
4 | //
5 | // Copyright (C) 2017 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 |
28 | namespace GameRes.Formats.MicroVision
29 | {
30 | [Export(typeof(AudioFormat))]
31 | public class IkmAudio : AudioFormat
32 | {
33 | public override string Tag { get { return "IKM"; } }
34 | public override string Description { get { return "MicroVision audio format (Ogg/vorbis)"; } }
35 | public override uint Signature { get { return 0x004D4B49; } } // 'IKM'
36 | public override bool CanWrite { get { return false; } }
37 |
38 | public override SoundInput TryOpen (IBinaryStream file)
39 | {
40 | var header = file.ReadHeader (0x40);
41 | uint length = header.ToUInt32 (0x24);
42 | var ogg = new StreamRegion (file.AsStream, file.Length-length, length);
43 | return new OggInput (ogg);
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/ArcFormats/Musica/WidgetPAZ.xaml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/Musica/WidgetPAZ.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Windows.Controls;
3 | using GameRes.Formats.Musica;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for WidgetPAZ.xaml
9 | ///
10 | public partial class WidgetPAZ : StackPanel
11 | {
12 | public WidgetPAZ (PazOpener paz)
13 | {
14 | InitializeComponent();
15 | Scheme.ItemsSource = paz.KnownTitles.Keys.OrderBy (x => x);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ArcFormats/NScripter/CreateONSWidget.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
14 |
15 |
16 |
17 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ArcFormats/NScripter/CreateONSWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Controls;
4 | using System.Windows.Data;
5 | using GameRes.Formats.Strings;
6 |
7 | namespace GameRes.Formats.GUI
8 | {
9 | ///
10 | /// Interaction logic for CreateONSWidget.xaml
11 | ///
12 | public partial class CreateONSWidget : Grid
13 | {
14 | public CreateONSWidget ()
15 | {
16 | InitializeComponent ();
17 | }
18 | }
19 |
20 | [ValueConversion (typeof (NScripter.Compression), typeof (string))]
21 | class CompressionToStringConverter : IValueConverter
22 | {
23 | public object Convert (object value, Type targetType, object parameter, CultureInfo culture)
24 | {
25 | switch ((NScripter.Compression)value)
26 | {
27 | case NScripter.Compression.SPB: return "SPB";
28 | case NScripter.Compression.LZSS: return "LZSS";
29 | case NScripter.Compression.NBZ: return "NBZ";
30 | default: return arcStrings.ONSCompressionNone;
31 | }
32 | }
33 |
34 | public object ConvertBack (object value, Type targetType, object parameter, CultureInfo culture)
35 | {
36 | string s = value as string;
37 | if (!string.IsNullOrEmpty (s))
38 | {
39 | if ("SPB" == s)
40 | return NScripter.Compression.SPB;
41 | else if ("LZSS" == s)
42 | return NScripter.Compression.LZSS;
43 | else if ("NBZ" == s)
44 | return NScripter.Compression.NBZ;
45 | }
46 | return NScripter.Compression.None;
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ArcFormats/NScripter/Script.cs:
--------------------------------------------------------------------------------
1 | //! \file Script.cs
2 | //! \date 2023 Aug 23
3 | //! \brief
4 | //
5 | // Copyright (C) 2023 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 | using System.IO;
28 |
29 | namespace GameRes.Formats.NScripter
30 | {
31 | [Export(typeof(ScriptFormat))]
32 | public class NSOpener : GenericScriptFormat
33 | {
34 | public override string Tag { get => "NScripter"; }
35 | public override string Description { get => "NScripter engine script file"; }
36 | public override uint Signature { get => 0; }
37 |
38 | public override bool IsScript (IBinaryStream file)
39 | {
40 | return VFS.IsPathEqualsToFileName (file.Name, "nscript.dat");
41 | }
42 |
43 | public override Stream ConvertFrom (IBinaryStream file)
44 | {
45 | return new XoredStream (file.AsStream, 0x84);
46 | }
47 |
48 | public override Stream ConvertBack (IBinaryStream file)
49 | {
50 | return new XoredStream (file.AsStream, 0x84);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/ArcFormats/NScripter/WidgetNSA.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ArcFormats/NScripter/WidgetNSA.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Windows.Controls;
3 | using GameRes.Formats.Properties;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for NSAWidget.xaml
9 | ///
10 | public partial class WidgetNSA : Grid
11 | {
12 | public WidgetNSA (IDictionary known_keys)
13 | {
14 | InitializeComponent ();
15 | this.Title.ItemsSource = known_keys;
16 | this.Password.Text = Settings.Default.NSAPassword;
17 | if (null != this.Title.SelectedItem)
18 | {
19 | var selected = (KeyValuePair)this.Title.SelectedItem;
20 | if (Settings.Default.NSAPassword != selected.Value)
21 | this.Title.SelectedIndex = -1;
22 | }
23 | }
24 |
25 | private void Title_SelectionChanged (object sender, SelectionChangedEventArgs e)
26 | {
27 | if (null != this.Title.SelectedItem && null != this.Password)
28 | {
29 | var selected = (KeyValuePair)this.Title.SelectedItem;
30 | this.Password.Text = selected.Value;
31 | }
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/ArcFormats/NSystem/WidgetMSD.xaml:
--------------------------------------------------------------------------------
1 |
5 |
9 |
11 |
12 |
--------------------------------------------------------------------------------
/ArcFormats/NSystem/WidgetMSD.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Linq;
3 | using System.Windows.Controls;
4 | using GameRes.Formats.NSystem;
5 | using GameRes.Formats.Properties;
6 | using GameRes.Formats.Strings;
7 |
8 | namespace GameRes.Formats.GUI
9 | {
10 | ///
11 | /// Interaction logic for WidgetMSD.xaml
12 | ///
13 | public partial class WidgetMSD : StackPanel
14 | {
15 | public WidgetMSD ()
16 | {
17 | InitializeComponent ();
18 | var first = new Dictionary { { arcStrings.ArcNoEncryption, "" } };
19 | Title.ItemsSource = first.Concat (FjsysOpener.KnownPasswords.OrderBy (x => x.Key));
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/CreateNPAWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using GameRes.Formats.NitroPlus;
3 |
4 | namespace GameRes.Formats.GUI
5 | {
6 | ///
7 | /// Interaction logic for CreateNPAWidget.xaml
8 | ///
9 | public partial class CreateNPAWidget : Grid
10 | {
11 | public CreateNPAWidget ()
12 | {
13 | InitializeComponent ();
14 | }
15 |
16 | private void Reset_Click (object sender, System.Windows.RoutedEventArgs e)
17 | {
18 | this.EncryptionWidget.Scheme.SelectedIndex = 0;
19 | this.Key1Box.Text = NpaOpener.DefaultKey1.ToString ("X8");
20 | this.Key2Box.Text = NpaOpener.DefaultKey2.ToString ("X8");
21 | this.CompressContents.IsChecked = false;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/CreateSGWidget.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/CreateSGWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 |
4 | namespace GameRes.Formats.GUI
5 | {
6 | ///
7 | /// Interaction logic for CreateSGWidget.xaml
8 | ///
9 | public partial class CreateSGWidget : Grid
10 | {
11 | public CreateSGWidget ()
12 | {
13 | InitializeComponent ();
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/WidgetNPA.xaml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/WidgetNPA.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System.Linq;
3 | using GameRes.Formats.Properties;
4 | using GameRes.Formats.NitroPlus;
5 | using GameRes.Formats.Strings;
6 |
7 | namespace GameRes.Formats.GUI
8 | {
9 | ///
10 | /// Interaction logic for WidgetNPA.xaml
11 | ///
12 | public partial class WidgetNPA : Grid
13 | {
14 | public WidgetNPA ()
15 | {
16 | var selected = Settings.Default.NPAScheme;
17 | InitializeComponent();
18 | var keys = new string[] { arcStrings.ArcNoEncryption };
19 | Scheme.ItemsSource = keys.Concat (NpaOpener.KnownSchemes.Keys.OrderBy (x => x));
20 | if (NpaTitleId.NotEncrypted == NpaOpener.GetTitleId (selected))
21 | Scheme.SelectedIndex = 0;
22 | else
23 | Scheme.SelectedValue = selected;
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/WidgetNPK.xaml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/NitroPlus/WidgetNPK.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.Windows.Controls;
3 | using System.Linq;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for WidgetNPK.xaml
9 | ///
10 | public partial class WidgetNPK : Grid
11 | {
12 | public WidgetNPK (IEnumerable titles)
13 | {
14 | InitializeComponent();
15 | Scheme.ItemsSource = titles.OrderBy (x => x);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ArcFormats/NonColor/WidgetNCARC.xaml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
12 |
13 |
--------------------------------------------------------------------------------
/ArcFormats/NonColor/WidgetNCARC.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System.Linq;
3 | using GameRes.Formats.NonColor;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for WidgetNCARC.xaml
9 | ///
10 | public partial class WidgetNCARC : StackPanel
11 | {
12 | public WidgetNCARC()
13 | {
14 | InitializeComponent();
15 | Scheme.ItemsSource = DatOpener.KnownSchemes.OrderBy (x => x.Key);
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/ArcFormats/PkWare/WidgetZIP.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
15 |
16 |
--------------------------------------------------------------------------------
/ArcFormats/PkWare/WidgetZIP.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Windows.Controls;
3 |
4 | namespace GameRes.Formats.GUI
5 | {
6 | ///
7 | /// Interaction logic for WidgetZIP.xaml
8 | ///
9 | public partial class WidgetZIP : StackPanel
10 | {
11 | public WidgetZIP (IEnumerable titles)
12 | {
13 | InitializeComponent();
14 | this.DataContext = titles;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/ArcFormats/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("ArcFormats")]
9 | [assembly: AssemblyDescription("Visual Novel resources library")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany ("mørkt")]
12 | [assembly: AssemblyProduct("ArcFormats")]
13 | [assembly: AssemblyCopyright ("Copyright © 2014-2018 mørkt")]
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("b9f45cc0-a966-4ccb-ac73-e99ee087567a")]
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.2.48.2200")]
36 | [assembly: AssemblyFileVersion ("1.2.48.2200")]
37 |
--------------------------------------------------------------------------------
/ArcFormats/Properties/Settings.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows;
3 | using System.Windows.Threading;
4 |
5 | namespace GameRes.Formats.Properties {
6 |
7 |
8 | // This class allows you to handle specific events on the settings class:
9 | // The SettingChanging event is raised before a setting's value is changed.
10 | // The PropertyChanged event is raised after a setting's value is changed.
11 | // The SettingsLoaded event is raised after the setting values are loaded.
12 | // The SettingsSaving event is raised before the setting values are saved.
13 | public sealed partial class Settings {
14 |
15 | public Settings() {
16 | // // To add event handlers for saving and changing settings, uncomment the lines below:
17 | //
18 | // this.SettingChanging += this.SettingChangingEventHandler;
19 | //
20 | // this.SettingsSaving += this.SettingsSavingEventHandler;
21 | //
22 | }
23 |
24 | private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
25 | // Add code to handle the SettingChangingEvent event here.
26 | }
27 |
28 | private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
29 | // Add code to handle the SettingsSaving event here.
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/ArcFormats/Qlie/WidgetQLIE.xaml:
--------------------------------------------------------------------------------
1 |
6 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/Qlie/WidgetQLIE.xaml.cs:
--------------------------------------------------------------------------------
1 | using GameRes.Formats.Qlie;
2 | using GameRes.Formats.Strings;
3 | using System.Windows.Controls;
4 | using System.Linq;
5 |
6 | namespace GameRes.Formats.GUI
7 | {
8 | ///
9 | /// Interaction logic for WidgetQLIE.xaml
10 | ///
11 | public partial class WidgetQLIE : StackPanel
12 | {
13 | public WidgetQLIE ()
14 | {
15 | InitializeComponent ();
16 | var keys = new string[] { arcStrings.QLIEDefaultScheme };
17 | Scheme.ItemsSource = keys.Concat (PackOpener.KnownKeys.Keys.OrderBy (x => x));
18 | if (-1 == Scheme.SelectedIndex)
19 | Scheme.SelectedIndex = 0;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/ArcFormats/RPM/WidgetARC.xaml:
--------------------------------------------------------------------------------
1 |
7 |
9 |
10 |
--------------------------------------------------------------------------------
/ArcFormats/RPM/WidgetARC.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 |
3 | namespace GameRes.Formats.Rpm
4 | {
5 | ///
6 | /// Interaction logic for WidgetARC.xaml
7 | ///
8 | public partial class WidgetARC : Grid
9 | {
10 | public WidgetARC ()
11 | {
12 | InitializeComponent ();
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/ArcFormats/RealLive/AudioOWP.cs:
--------------------------------------------------------------------------------
1 | //! \file AudioOWP.cs
2 | //! \date Fri Jul 29 11:25:09 2016
3 | //! \brief RealLive obfuscated OGG files.
4 | //
5 | // Copyright (C) 2016 by morkt
6 | //
7 | // Permission is hereby granted, free of charge, to any person obtaining a copy
8 | // of this software and associated documentation files (the "Software"), to
9 | // deal in the Software without restriction, including without limitation the
10 | // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
11 | // sell copies of the Software, and to permit persons to whom the Software is
12 | // furnished to do so, subject to the following conditions:
13 | //
14 | // The above copyright notice and this permission notice shall be included in
15 | // all copies or substantial portions of the Software.
16 | //
17 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
23 | // IN THE SOFTWARE.
24 | //
25 |
26 | using System.ComponentModel.Composition;
27 | using System.IO;
28 | using System.Security.Cryptography;
29 |
30 | namespace GameRes.Formats.RealLive
31 | {
32 | [Export(typeof(AudioFormat))]
33 | public class OwpAudio : AudioFormat
34 | {
35 | public override string Tag { get { return "OWP"; } }
36 | public override string Description { get { return "RealLive engine obfuscated OGG audio"; } }
37 | public override uint Signature { get { return 0x6A5E5E76; } } // 'OggS' ^ 0x39
38 |
39 | public override SoundInput TryOpen (IBinaryStream file)
40 | {
41 | var input = new XoredStream (file.AsStream, 0x39);
42 | return new OggInput (input);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/ArcFormats/RenPy/CreateRPAWidget.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/ArcFormats/RenPy/CreateRPAWidget.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Globalization;
2 | using System.Windows.Controls;
3 | using System.Windows.Data;
4 |
5 | namespace GameRes.Formats.GUI
6 | {
7 | ///
8 | /// Interaction logic for CreateRPAWidget.xaml
9 | ///
10 | public partial class CreateRPAWidget : Grid
11 | {
12 | public CreateRPAWidget ()
13 | {
14 | InitializeComponent ();
15 | }
16 | }
17 |
18 | [ValueConversion(typeof(uint), typeof(string))]
19 | public class UInt32Converter : IValueConverter
20 | {
21 | public object Convert (object value, System.Type targetType, object parameter, CultureInfo culture)
22 | {
23 | if (null == value)
24 | return "";
25 | uint key = (uint)value;
26 | return key.ToString ("x");
27 | }
28 |
29 | public object ConvertBack (object value, System.Type targetType, object parameter, CultureInfo culture)
30 | {
31 | string strValue = value as string;
32 | uint result_key;
33 | if (uint.TryParse(strValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out result_key))
34 | return result_key;
35 | else
36 | return null;
37 | }
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/ArcFormats/ResourceSettings.cs:
--------------------------------------------------------------------------------
1 | //! \file ResourceSettings.cs
2 | //! \date 2018 Jan 08
3 | //! \brief Persistent resource settings implementation.
4 | //
5 |
6 | using System;
7 | using System.ComponentModel.Composition;
8 | using System.Diagnostics;
9 | using System.Text;
10 | using GameRes.Formats.Strings;
11 |
12 | namespace GameRes.Formats
13 | {
14 | internal class LocalResourceSetting : ResourceSettingBase
15 | {
16 | public override object Value {
17 | get { return Properties.Settings.Default[Name]; }
18 | set { Properties.Settings.Default[Name] = value; }
19 | }
20 |
21 | public LocalResourceSetting () { }
22 |
23 | public LocalResourceSetting (string name) : this (name, name) { }
24 |
25 | public LocalResourceSetting (string name, string text)
26 | {
27 | Name = name;
28 | Text = arcStrings.ResourceManager.GetString (text, arcStrings.Culture) ?? text;
29 | }
30 | }
31 |
32 | internal class EncodingSetting : LocalResourceSetting
33 | {
34 | static readonly Encoding DefaultEncoding = Encodings.cp932;
35 |
36 | public override object Value {
37 | get {
38 | try
39 | {
40 | return Encoding.GetEncoding ((int)base.Value);
41 | }
42 | catch // fallback to CP932
43 | {
44 | Trace.WriteLine (string.Format ("Unknown encoding code page {0}", base.Value));
45 | return DefaultEncoding;
46 | }
47 | }
48 | set { base.Value = ((Encoding)value).CodePage; }
49 | }
50 |
51 | public EncodingSetting () { }
52 |
53 | public EncodingSetting (string name) : base (name) { }
54 |
55 | public EncodingSetting (string name, string text) : base (name, text) { }
56 | }
57 |
58 | [Export(typeof(ISettingsManager))]
59 | internal class SettingsManager : ISettingsManager
60 | {
61 | public void UpgradeSettings ()
62 | {
63 | if (Properties.Settings.Default.UpgradeRequired)
64 | {
65 | Properties.Settings.Default.Upgrade();
66 | Properties.Settings.Default.UpgradeRequired = false;
67 | Properties.Settings.Default.Save();
68 | }
69 | }
70 |
71 | public void SaveSettings ()
72 | {
73 | Properties.Settings.Default.Save();
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/ArcFormats/Resources/Formats.dat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/Resources/Formats.dat
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/IColorBitsTable1:
--------------------------------------------------------------------------------
1 |
2 | 6
.
3 | A (
4 |
5 | =A $
,
6 | A & 2 *
7 | A "
8 | :
-
9 | A '
10 | /A #
+
11 | A % 3 )
12 | A !
13 | 8
.
14 | A (
15 |
16 | @A $
,
17 | A & 1 *
18 | A "
19 | ;
-
20 | A '
21 | 0A #
+
22 | A % 4 )
23 | A !
24 | 5
.
25 | A (
26 |
27 | >A $
,
28 | A & 2 *
29 | A "
30 | 9
-
31 | A '
32 | /A #
+
33 | A % 3 )
34 | A !
35 | 7
.
36 | A (
37 |
38 | ?A $
,
39 | A & 1 *
40 | A "
41 | <
-
42 | A '
43 | 0A #
+
44 | A % 4 )
45 | A !
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/IColorBitsTable2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/ScrPlayer/IColorBitsTable2
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/IControlTable1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/ScrPlayer/IControlTable1
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/IControlTable2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/ScrPlayer/IControlTable2
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/IControlTable32:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/ImgControlTable1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/ScrPlayer/ImgControlTable1
--------------------------------------------------------------------------------
/ArcFormats/ScrPlayer/ImgDeltaTable2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/morkt/GARbro/b09ee4570ccb1daf6ac56710ee8934dc0b8baeb0/ArcFormats/ScrPlayer/ImgDeltaTable2
--------------------------------------------------------------------------------
/ArcFormats/Selene/WidgetKCAP.xaml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
18 |
21 |
23 |
26 |
27 |
--------------------------------------------------------------------------------
/ArcFormats/Selene/WidgetKCAP.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Linq;
2 | using System.Windows;
3 | using System.Windows.Controls;
4 | using GameRes.Formats.Properties;
5 | using GameRes.Formats.Selene;
6 | using GameRes.Formats.Strings;
7 |
8 | namespace GameRes.Formats.GUI
9 | {
10 | ///
11 | /// Interaction logic for WidgetKCAP.xaml
12 | ///
13 | public partial class WidgetKCAP : Grid
14 | {
15 | public WidgetKCAP ()
16 | {
17 | InitializeComponent ();
18 | var keys = new[] { arcStrings.ArcDefault };
19 | EncScheme.ItemsSource = keys.Concat (PackOpener.KnownSchemes.Keys);
20 | if (-1 == EncScheme.SelectedIndex)
21 | EncScheme.SelectedIndex = 0;
22 | EncScheme.SelectionChanged += OnSchemeChanged;
23 | }
24 |
25 | void OnSchemeChanged (object sender, SelectionChangedEventArgs e)
26 | {
27 | var widget = sender as ComboBox;
28 | var pass = PackOpener.GetPassPhrase (widget.SelectedItem as string);
29 | Passphrase.Text = pass;
30 | Settings.Default.KCAPPassPhrase = pass;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/ArcFormats/ShiinaRio/WidgetWARC.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
16 |
19 |
20 |
--------------------------------------------------------------------------------
/ArcFormats/ShiinaRio/WidgetWARC.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 | using System.Windows.Controls;
3 | using System.Linq;
4 | using GameRes.Formats.Properties;
5 | using GameRes.Formats.Strings;
6 |
7 | namespace GameRes.Formats.GUI
8 | {
9 | ///
10 | /// Interaction logic for WidgetWARC.xaml
11 | ///
12 | public partial class WidgetWARC : Grid
13 | {
14 | public WidgetWARC ()
15 | {
16 | InitializeComponent();
17 | // select the most recent scheme as default
18 | if (-1 == Scheme.SelectedIndex)
19 | Scheme.SelectedIndex = Scheme.ItemsSource.Cast