Ejemplo n.º 1
0
        public TreeNode GetFileSystemTopNode()
        {
            var topNode = new TreeNode("CIA", 1, 1);

            if (Header.MetaLength > 0)
            {
                topNode.Nodes.Add(ICN.GetFileSystemTopNode());
            }

            if (TMDContext != null && TMDContext.Chunks.Length > 0) //add content files
            {
                var contentNode = new TreeNode("Content", 1, 1);
                topNode.Nodes.Add(contentNode);
                var offset = (ulong)ContentOffset;
                for (var i = 0; i < TMDContext.Chunks.Length; i++)
                {
                    var filename = string.Format("content.{0}.{1:X}.bin", TMDContext.Chunks[i].ContentIndex, TMDContext.Chunks[i].ContentID);
                    contentNode.Nodes.Add(
                        new TreeNode(
                            TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                filename, TMDContext.Chunks[i].ContentSize.ToString(), "0x" + offset.ToString("X")))
                    {
                        Tag = new[] { TreeViewContextTag.Create(this, 0, "Save...", new object[] { TMDContext.Chunks[i], (long)offset }) }
                    });
                    offset += TMDContext.Chunks[i].ContentSize;
                }
            }

            return(topNode);
        }
Ejemplo n.º 2
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode("CIA")
            {
                Tag = TreeViewContextTag.Create(this, (int)CIAView.CIA)
            };

            if (CertificatesContext != null && CertificatesContext.List.Count > 0)
            {
                tNode.Nodes.Add(CertificatesContext.GetExplorerTopNode());
            }

            if ((uint)TicketContext.Ticket.SignatureType != 0)
            {
                tNode.Nodes.Add(TicketContext.GetExplorerTopNode());
            }
            if (TMDContext != null)
            {
                tNode.Nodes.Add(TMDContext.GetExplorerTopNode());
            }

            if (Header.MetaLength > 0)
            {
                var bNode = new TreeNode("Meta")
                {
                    Tag = TreeViewContextTag.Create(this, (int)CIAView.Meta)
                };
                bNode.Nodes.Add(ICN.GetExplorerTopNode());
                tNode.Nodes.Add(bNode);
            }
            return(tNode);
        }
Ejemplo n.º 3
0
        public TreeNode GetFileSystemTopNode()
        {
            var tNode = new TreeNode(NcsdInfo.ncsd_type, 1, 1);

            for (var i = 0; i < CXIContexts.Length; i++)
            {
                if (CXIContexts[i] != null && Header.CXIEntries[i].Offset * NcsdInfo.media_unit < NcsdInfo.CCI_File_Size) // Only shows NCCH files which actually exist in CCI
                {
                    var cxiNode = CXIContexts[i].GetFileSystemTopNode();
                    cxiNode.Text = cxiNode.Text + @" " + i;
                    cxiNode.Tag  = new[] { TreeViewContextTag.Create(this, (int)CCIActivation.SaveNCCH, "Save " + CXIContexts[i].NcchInfo.ncch_type + "...", new object[] { i }) };
                    tNode.Nodes.Add(cxiNode);
                }
            }
            if (NcsdInfo.HasWritableRegion && NcsdInfo.CCI_File_Status == (int)CCI_File_Status.CCI_FullSize) // Only give option to save writable region, if it exists and the CCI dump is still large enough to hold it
            {
                tNode.Nodes.Add(new TreeNode(
                                    TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                        "WritableRegion.bin",
                                        (NcsdInfo.WritableRegionSize).ToString(),
                                        StringUtil.ToHexString(6, NcsdInfo.WritableRegionAddress)
                                        ))
                {
                    Tag = new[] { TreeViewContextTag.Create(this, (int)CCIActivation.SaveWritableRegion, "Save...") }
                });
            }
            return(tNode);
        }
Ejemplo n.º 4
0
        public TreeNode GetFileSystemTopNode()
        {
            var tNode = new TreeNode(string.Format(NcchInfo.ncch_type + " ({0})", StringUtil.CharArrayToString(Header.ProductCode)), 1, 1);

            // Thanks to Ris312 for that fix! ExtendedHeaderSize
            if (Header.ExtendedHeaderSize > 0)
            {
                tNode.Nodes.Add(new TreeNode(
                                    TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                        "ExHeader.bin",
                                        (Header.ExtendedHeaderSize).ToString(),
                                        StringUtil.ToHexString(6, (ulong)(OffsetInNCSD + Marshal.SizeOf(Header)))
                                        ))
                {
                    Tag = new[] { TreeViewContextTag.Create(this, (int)CXIActivation.ExHeader, "Save...") }
                });
            }
            if (Header.LogoRegionLength > 0)
            {
                tNode.Nodes.Add(new TreeNode(
                                    TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                        "Logo.bin",
                                        (Header.LogoRegionLength * NcchInfo.media_unit).ToString(),
                                        StringUtil.ToHexString(6, (ulong)OffsetInNCSD + Header.LogoRegionOffset * NcchInfo.media_unit)
                                        ))
                {
                    Tag = new[] { TreeViewContextTag.Create(this, (int)CXIActivation.Logo, "Save...") }
                });
            }

            if (Header.ExeFSLength > 0)
            {
                tNode.Nodes.Add(new TreeNode(
                                    TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                        "ExeFS.bin",
                                        (Header.ExeFSLength * NcchInfo.media_unit).ToString(),
                                        StringUtil.ToHexString(6, (ulong)OffsetInNCSD + Header.ExeFSOffset * NcchInfo.media_unit)
                                        ))
                {
                    Tag = new[] { TreeViewContextTag.Create(this, (int)CXIActivation.ExeFS, "Save...") }
                });
            }

            if (Header.RomFSLength > 0)
            {
                tNode.Nodes.Add(new TreeNode(
                                    TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                        "RomFS.bin",
                                        (Header.RomFSLength * NcchInfo.media_unit).ToString(),
                                        StringUtil.ToHexString(6, (ulong)OffsetInNCSD + Header.RomFSOffset * NcchInfo.media_unit)
                                        ))
                {
                    Tag = new[] { TreeViewContextTag.Create(this, (int)CXIActivation.RomFS, "Save...") }
                });
            }
            return(tNode);
        }
Ejemplo n.º 5
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode("ICN")
            {
                Tag = TreeViewContextTag.Create(this, (int)ICNView.ICN)
            };

            return(tNode);
        }
Ejemplo n.º 6
0
        public TreeNode GetExplorerTopNode()
        {
            var topNode = new TreeNode("Ticket")
            {
                Tag = TreeViewContextTag.Create(this)
            };

            return(topNode);
        }
Ejemplo n.º 7
0
        public TreeNode GetExplorerTopNode()
        {
            var topNode = new TreeNode("CGFX")
            {
                Tag = TreeViewContextTag.Create(this, (int)CGFXView.CGFX)
            };

            return(topNode);
        }
Ejemplo n.º 8
0
        public TreeNode GetFileSystemTopNode()
        {
            var topNode  = new TreeNode("CBMD", 1, 1);
            var cgfxNode = CGFXContext.GetFileSystemTopNode();

            cgfxNode.Tag = new[] { TreeViewContextTag.Create(this, (int)CBMDActivation.SaveCGFX, "Save CGFX...", null) };
            topNode.Nodes.Add(cgfxNode);
            return(topNode);
        }
Ejemplo n.º 9
0
        public TreeNode GetFileSystemTopNode()
        {
            var topNode = new TreeNode("CGFX", 1, 1);

            topNode.Nodes.Add(new TreeNode(TreeListView.TreeListViewControl.CreateMultiColumnNodeText("Banner Image", "256x128"))
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Show...", new object[] { BannerImage }), TreeViewContextTag.Create(this, 1, "Replace...", new object[] { BannerImage }) }
            });
            return(topNode);
        }
Ejemplo n.º 10
0
        public TreeNode GetExplorerTopNode()
        {
            var topNode = new TreeNode("Archive")
            {
                Tag = TreeViewContextTag.Create(this, (int)ArchivedCCIView.Archive)
            };

            topNode.Nodes.Add(CCIContext.GetExplorerTopNode());
            return(topNode);
        }
Ejemplo n.º 11
0
        public TreeNode GetExplorerTopNode()
        {
            var topNode = new TreeNode("CBMD")
            {
                Tag = TreeViewContextTag.Create(this, (int)CBMDView.CBMD)
            };

            topNode.Nodes.Add(CGFXContext.GetExplorerTopNode());
            return(topNode);
        }
Ejemplo n.º 12
0
        public TreeNode GetFileSystemTopNode()
        {
            var topNode = new TreeNode("CWAV", 1, 1);

            topNode.Nodes.Add(
                new TreeNode(TreeListView.TreeListViewControl.CreateMultiColumnNodeText("Wave.wav"))
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Save") }
            });
            return(topNode);
        }
Ejemplo n.º 13
0
        public TreeNode GetExplorerTopNode()
        {
            var topNode = new TreeNode("Banner")
            {
                Tag = TreeViewContextTag.Create(this, (int)BannerView.Banner)
            };

            topNode.Nodes.Add(CBMDContext.GetExplorerTopNode());
            topNode.Nodes.Add(CWAVContext.GetExplorerTopNode());
            return(topNode);
        }
Ejemplo n.º 14
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode(string.Format(NcchInfo.ncch_type + " ({0})", StringUtil.CharArrayToString(Header.ProductCode)))
            {
                Tag = TreeViewContextTag.Create(this, (int)CXIView.NCCH)
            };

            if (Header.PlainRegionSize > 0) //Add PlainRegions
            {
                tNode.Nodes.Add("PlainRegion").Tag = TreeViewContextTag.Create(this, (int)CXIView.NCCHPlainRegion);
            }
            return(tNode);
        }
Ejemplo n.º 15
0
        public TreeNode GetFileSystemTopNode()
        {
            var tNode = new TreeNode("ICN", 1, 1);

            tNode.Nodes.Add(new TreeNode(TreeListView.TreeListViewControl.CreateMultiColumnNodeText("Small Icon", "24x24"))
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Show...", new object[] { SmallIcon }), TreeViewContextTag.Create(this, 1, "Replace...", new object[] { SmallIcon }) }
            });
            tNode.Nodes.Add(new TreeNode(TreeListView.TreeListViewControl.CreateMultiColumnNodeText("Large Icon", "48x48"))
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Show...", new object[] { LargeIcon }), TreeViewContextTag.Create(this, 1, "Replace...", new object[] { LargeIcon }) }
            });
            return(tNode);
        }
Ejemplo n.º 16
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode("DARC")
            {
                Tag = TreeViewContextTag.Create(this, (int)DARCView.Header)
            };
            var sNode = new TreeNode("Files")
            {
                Tag = TreeViewContextTag.Create(this, (int)DARCView.FilesTable, new object[] { 0 })
            };

            tNode.Nodes.Add(sNode);
            return(tNode);
        }
Ejemplo n.º 17
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode("TMD")
            {
                Tag = TreeViewContextTag.Create(this, (int)TMDView.TMD)
            };

            tNode.Nodes.Add("Content Info Records").Tag  = TreeViewContextTag.Create(this, (int)TMDView.ContentInfoRecord);
            tNode.Nodes.Add("Content Chunk Records").Tag = TreeViewContextTag.Create(this, (int)TMDView.ContentChunkRecord);
            if (CertificatesContext != null)
            {
                tNode.Nodes.Add(CertificatesContext.GetExplorerTopNode());
            }
            return(tNode);
        }
Ejemplo n.º 18
0
        public TreeNode GetFileSystemTopNode()
        {
            var tNode   = new TreeNode("DARC", 1, 1);
            var folders = new List <TreeNode>();

            //add root folder
            folders.Add(tNode.Nodes.Add("root", "ROOT", 1, 1));
            //add folders

            /*if (Folders.Length > 1)
             *  for (var i = 1; i < Folders.Length; i++)
             *  {
             *      folders[i] = folders[Folders[i].ParentFolderIndex - 1].Nodes.Add(StringUtil.CharArrayToString(Folders[i].FolderName));
             *      folders[i].ImageIndex = 1;
             *      folders[i].SelectedImageIndex = 1;
             *  }
             */
            //add files
            if (Files.Count > 0)
            {
                var folder = 0;
                for (var i = 0; i < Files.Count; i++)
                {
                    if (Files[i].Folder > 0)
                    {
                        //folders.Add()
                        var node = folders[folder].Nodes.Add(FileNames[i]);
                        node.ImageIndex         = 1;
                        node.SelectedImageIndex = 1;
                        //folder++;
                    }
                    else
                    {
                        var node = folders[folder].Nodes.Add(
                            TreeListView.TreeListViewControl.CreateMultiColumnNodeText(
                                FileNames[i],
                                Files[i].Length.ToString(),
                                StringUtil.ToHexString(6, Files[i].Offset)));
                        node.Tag = new[]
                        {
                            TreeViewContextTag.Create(this, (int)DARCActivation.File, "Save...",
                                                      new object[] { i })
                        };
                    }
                }
            }
            return(tNode);
        }
Ejemplo n.º 19
0
        public TreeNode GetFileSystemTopNode()
        {
            var tNode = new TreeNode("NCSD", 1, 1);

            for (var i = 0; i < CXIContexts.Length; i++)
            {
                if (CXIContexts[i] != null)
                {
                    var cxiNode = CXIContexts[i].GetFileSystemTopNode();
                    cxiNode.Text = cxiNode.Text + @" " + i;
                    cxiNode.Tag  = new[] { TreeViewContextTag.Create(this, (int)CCIActivation.SaveNCCH, "Save NCCH...", new object[] { i }) };
                    tNode.Nodes.Add(cxiNode);
                }
            }
            return(tNode);
        }
Ejemplo n.º 20
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode("Certificates")
            {
                Tag = TreeViewContextTag.Create(this, 0, new object[] { -1 })
            };

            for (var i = 0; i < List.Count; i++)
            {
                tNode.Nodes.Add(new TreeNode("Certificate " + i)
                {
                    Tag = TreeViewContextTag.Create(this, 0, new object[] { i })
                });
            }
            return(tNode);
        }
Ejemplo n.º 21
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode(NcsdInfo.ncsd_type)
            {
                Tag = TreeViewContextTag.Create(this, (int)CCIView.NCSD)
            };

            for (var i = 0; i < CXIContexts.Length; i++)
            {
                if (CXIContexts[i] != null && Header.CXIEntries[i].Offset * NcsdInfo.media_unit < NcsdInfo.CCI_File_Size) // Only shows NCCH files which actually exist in CCI
                {
                    var cxiNode = CXIContexts[i].GetExplorerTopNode();
                    cxiNode.Text = cxiNode.Text + @" " + i;
                    tNode.Nodes.Add(cxiNode);
                }
            }
            return(tNode);
        }
Ejemplo n.º 22
0
        public TreeNode GetExplorerTopNode()
        {
            var tNode = new TreeNode("NCSD")
            {
                Tag = TreeViewContextTag.Create(this, (int)CCIView.NCSD)
            };

            for (var i = 0; i < CXIContexts.Length; i++)
            {
                if (CXIContexts[i] != null)
                {
                    var cxiNode = CXIContexts[i].GetExplorerTopNode();
                    cxiNode.Text = cxiNode.Text + @" " + i;
                    tNode.Nodes.Add(cxiNode);
                }
            }
            return(tNode);
        }
Ejemplo n.º 23
0
        public TreeNode GetFileSystemTopNode()
        {
            var topNode = new TreeNode("MPO", 1, 1);

            topNode.Nodes.Add(new TreeNode("Left")
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Show...", new object[] { LeftImage }), TreeViewContextTag.Create(this, 1, "Replace...", new object[] { LeftImage }) }
            });
            topNode.Nodes.Add(new TreeNode("Right")
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Show...", new object[] { RightImage }), TreeViewContextTag.Create(this, 1, "Replace...", new object[] { RightImage }) }
            });
            topNode.Nodes.Add(new TreeNode("Anaglyph")
            {
                Tag = new[] { TreeViewContextTag.Create(this, 0, "Show...", new object[] { AnaglyphImage }) }
            });
            return(topNode);
        }
Ejemplo n.º 24
0
        public TreeNode GetExplorerTopNode()
        {
            var topNode = new TreeNode("MPO")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.MPO)
            };
            var sub = new TreeNode("Left Image")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.Image, new object[] { 0 })
            };

            sub.Nodes.Add(new TreeNode("MPO Extensions")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.MPOExtensions, new object[] { 0 })
            });
            sub.Nodes.Add(new TreeNode("Maker Note")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.MakerNote, new object[] { 0 })
            });
            topNode.Nodes.Add(sub);
            sub = new TreeNode("Right Image")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.Image, new object[] { 1 })
            };
            sub.Nodes.Add(new TreeNode("MPO Extensions")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.MPOExtensions, new object[] { 1 })
            });
            sub.Nodes.Add(new TreeNode("Maker Note")
            {
                Tag = TreeViewContextTag.Create(this, (int)MPOView.MakerNote, new object[] { 1 })
            });
            topNode.Nodes.Add(sub);

            return(topNode);
        }