mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
マスタエディタ:マスタROM提出書類とSRLの一部分の情報をGUIで編集できるWindowsアプリ。未完成。ドキュメントも追加。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2128 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
2bdceeab46
commit
487a7ed4fd
Binary file not shown.
BIN
build/tools/MasterEditorTWL/MasterEditorTWL.ncb
Normal file
BIN
build/tools/MasterEditorTWL/MasterEditorTWL.ncb
Normal file
Binary file not shown.
24
build/tools/MasterEditorTWL/MasterEditorTWL.sln
Normal file
24
build/tools/MasterEditorTWL/MasterEditorTWL.sln
Normal file
@ -0,0 +1,24 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||
# Visual Studio 2008
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MasterEditorTWL", "MasterEditorTWL\MasterEditorTWL.vcproj", "{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}"
|
||||
EndProject
|
||||
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "MasterEditorTWLSetup", "MasterEditorTWLSetup\MasterEditorTWLSetup.vdproj", "{D24711F8-41FF-4E3E-96BD-F4FFA6A2FB34}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Release|Win32 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}.Release|Win32.Build.0 = Release|Win32
|
||||
{D24711F8-41FF-4E3E-96BD-F4FFA6A2FB34}.Debug|Win32.ActiveCfg = Debug
|
||||
{D24711F8-41FF-4E3E-96BD-F4FFA6A2FB34}.Release|Win32.ActiveCfg = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
build/tools/MasterEditorTWL/MasterEditorTWL.suo
Normal file
BIN
build/tools/MasterEditorTWL/MasterEditorTWL.suo
Normal file
Binary file not shown.
40
build/tools/MasterEditorTWL/MasterEditorTWL/AssemblyInfo.cpp
Normal file
40
build/tools/MasterEditorTWL/MasterEditorTWL/AssemblyInfo.cpp
Normal file
@ -0,0 +1,40 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
using namespace System;
|
||||
using namespace System::Reflection;
|
||||
using namespace System::Runtime::CompilerServices;
|
||||
using namespace System::Runtime::InteropServices;
|
||||
using namespace System::Security::Permissions;
|
||||
|
||||
//
|
||||
// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
|
||||
// アセンブリに関連付けられている情報を変更するには、
|
||||
// これらの属性値を変更してください。
|
||||
//
|
||||
[assembly:AssemblyTitleAttribute("MasterEditorTWL")];
|
||||
[assembly:AssemblyDescriptionAttribute("")];
|
||||
[assembly:AssemblyConfigurationAttribute("")];
|
||||
[assembly:AssemblyCompanyAttribute("任天堂株式会社")];
|
||||
[assembly:AssemblyProductAttribute("MasterEditorTWL")];
|
||||
[assembly:AssemblyCopyrightAttribute("Copyright (c) 任天堂株式会社 2008")];
|
||||
[assembly:AssemblyTrademarkAttribute("")];
|
||||
[assembly:AssemblyCultureAttribute("")];
|
||||
|
||||
//
|
||||
// アセンブリのバージョン情報は、以下の 4 つの値で構成されています:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// すべての値を指定するか、下のように '*' を使ってリビジョンおよびビルド番号を
|
||||
// 既定値にすることができます:
|
||||
|
||||
[assembly:AssemblyVersionAttribute("1.0.*")];
|
||||
|
||||
[assembly:ComVisible(false)];
|
||||
|
||||
[assembly:CLSCompliantAttribute(true)];
|
||||
|
||||
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];
|
||||
BIN
build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm
Normal file
BIN
build/tools/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm
Normal file
Binary file not shown.
5422
build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h
Normal file
5422
build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h
Normal file
File diff suppressed because it is too large
Load Diff
120
build/tools/MasterEditorTWL/MasterEditorTWL/Form1.resX
Normal file
120
build/tools/MasterEditorTWL/MasterEditorTWL/Form1.resX
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
||||
@ -0,0 +1,18 @@
|
||||
// MasterEditorTWL.cpp : メイン プロジェクト ファイルです。
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "Form1.h"
|
||||
|
||||
using namespace MasterEditorTWL;
|
||||
|
||||
[STAThreadAttribute]
|
||||
int main(array<System::String ^> ^args)
|
||||
{
|
||||
// コントロールが作成される前に、Windows XP ビジュアル効果を有効にします
|
||||
Application::EnableVisualStyles();
|
||||
Application::SetCompatibleTextRenderingDefault(false);
|
||||
|
||||
// メイン ウィンドウを作成して、実行します
|
||||
Application::Run(gcnew Form1());
|
||||
return 0;
|
||||
}
|
||||
@ -0,0 +1,316 @@
|
||||
<?xml version="1.0" encoding="shift_jis"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="MasterEditorTWL"
|
||||
ProjectGUID="{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}"
|
||||
RootNamespace="MasterEditorTWL"
|
||||
Keyword="ManagedCProj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
ManagedExtensions="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="C:\twlsdk\build\tools\makerom.TWL;C:\twlsdk\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="libacsign_X86.a libaes_X86.a libdigest_X86.a libflags_X86.a $(NOINHERIT)"
|
||||
LinkIncremental="2"
|
||||
AdditionalLibraryDirectories="..\flags\lib\X86;C:\twlsdk\build\tools\makerom.TWL\digest\lib\X86;C:\twlsdk\build\tools\makerom.TWL\aes\lib\X86;C:\twlsdk\build\tools\makerom.TWL\acsign\lib\X86"
|
||||
GenerateDebugInformation="true"
|
||||
AssemblyDebug="1"
|
||||
SubSystem="2"
|
||||
EntryPointSymbol="main"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="1"
|
||||
CharacterSet="1"
|
||||
ManagedExtensions="1"
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="C:\twlsdk\build\tools\makerom.TWL;C:\twlsdk\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG"
|
||||
RuntimeLibrary="2"
|
||||
UsePrecompiledHeader="2"
|
||||
WarningLevel="3"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="libacsign_X86.a libaes_X86.a libdigest_X86.a libflags_X86.a $(NoInherit)"
|
||||
LinkIncremental="1"
|
||||
AdditionalLibraryDirectories="..\flags\lib\X86;C:\twlsdk\build\tools\makerom.TWL\digest\lib\X86;C:\twlsdk\build\tools\makerom.TWL\aes\lib\X86;C:\twlsdk\build\tools\makerom.TWL\acsign\lib\X86"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
EntryPointSymbol="main"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
<AssemblyReference
|
||||
RelativePath="System.dll"
|
||||
AssemblyName="System, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
||||
MinFrameworkVersion="131072"
|
||||
/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.Data.dll"
|
||||
AssemblyName="System.Data, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=x86"
|
||||
MinFrameworkVersion="131072"
|
||||
/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.Drawing.dll"
|
||||
AssemblyName="System.Drawing, Version=2.0.0.0, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
|
||||
MinFrameworkVersion="131072"
|
||||
/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.Windows.Forms.dll"
|
||||
AssemblyName="System.Windows.Forms, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
||||
MinFrameworkVersion="131072"
|
||||
/>
|
||||
<AssemblyReference
|
||||
RelativePath="System.XML.dll"
|
||||
AssemblyName="System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"
|
||||
MinFrameworkVersion="131072"
|
||||
/>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="ソース ファイル"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\AssemblyInfo.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\crc_whole.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\deliverable.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\keys.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\MasterEditorTWL.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\srl.cpp"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
UsePrecompiledHeader="1"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\utility.cpp"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="ヘッダー ファイル"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\crc_whole.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\deliverable.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\Form1.h"
|
||||
FileType="3"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\Form1.resX"
|
||||
SubType="Designer"
|
||||
>
|
||||
</File>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\keys.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\resource.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\srl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\stdafx.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\utility.h"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="リソース ファイル"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\app.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath=".\app.rc"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
<File
|
||||
RelativePath=".\ReadMe.txt"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="shift_jis"?>
|
||||
<VisualStudioUserFile
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
ShowAllFiles="false"
|
||||
>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<DebugSettings
|
||||
Command="$(TargetPath)"
|
||||
WorkingDirectory=""
|
||||
CommandArguments=""
|
||||
Attach="false"
|
||||
DebuggerType="3"
|
||||
Remote="1"
|
||||
RemoteMachine="PC2355"
|
||||
RemoteCommand=""
|
||||
HttpUrl=""
|
||||
PDBPath=""
|
||||
SQLDebugging=""
|
||||
Environment=""
|
||||
EnvironmentMerge="true"
|
||||
DebuggerFlavor=""
|
||||
MPIRunCommand=""
|
||||
MPIRunArguments=""
|
||||
MPIRunWorkingDirectory=""
|
||||
ApplicationCommand=""
|
||||
ApplicationArguments=""
|
||||
ShimCommand=""
|
||||
MPIAcceptMode=""
|
||||
MPIAcceptFilter=""
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<DebugSettings
|
||||
Command="$(TargetPath)"
|
||||
WorkingDirectory=""
|
||||
CommandArguments=""
|
||||
Attach="false"
|
||||
DebuggerType="3"
|
||||
Remote="1"
|
||||
RemoteMachine="PC2355"
|
||||
RemoteCommand=""
|
||||
HttpUrl=""
|
||||
PDBPath=""
|
||||
SQLDebugging=""
|
||||
Environment=""
|
||||
EnvironmentMerge="true"
|
||||
DebuggerFlavor=""
|
||||
MPIRunCommand=""
|
||||
MPIRunArguments=""
|
||||
MPIRunWorkingDirectory=""
|
||||
ApplicationCommand=""
|
||||
ApplicationArguments=""
|
||||
ShimCommand=""
|
||||
MPIAcceptMode=""
|
||||
MPIAcceptFilter=""
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
</VisualStudioUserFile>
|
||||
34
build/tools/MasterEditorTWL/MasterEditorTWL/ReadMe.txt
Normal file
34
build/tools/MasterEditorTWL/MasterEditorTWL/ReadMe.txt
Normal file
@ -0,0 +1,34 @@
|
||||
===============================================================================
|
||||
アプリケーション : MasterEditorTWL プロジェクトの概要
|
||||
===============================================================================
|
||||
|
||||
この MasterEditorTWL アプリケーションは、AppWizard によって作成されました。
|
||||
|
||||
このファイルには、MasterEditorTWL アプリケーションを構成する各ファイルの
|
||||
内容の概略が記述されています。
|
||||
|
||||
MasterEditorTWL.vcproj
|
||||
これは、アプリケーション ウィザードで生成される VC++ プロジェクトのメインの
|
||||
プロジェクト ファイルです。
|
||||
ファイルを生成した Visual C++ のバージョン情報と、アプリケーション ウィザー
|
||||
ドで選択したプラットフォーム、構成、およびプロジェクトの機能に関する情報が
|
||||
記述されています。
|
||||
|
||||
MasterEditorTWL.cpp
|
||||
これは、メインのアプリケーション ソース ファイルです。
|
||||
フォームを表示するコードが含まれています。
|
||||
|
||||
Form1.h
|
||||
ユーザーのフォーム クラスの実装と、InitializeComponent() 関数が含まれています。
|
||||
|
||||
AssemblyInfo.cpp
|
||||
アセンブリ メタデータを変更するためのカスタム属性が含まれています。
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
その他の標準ファイル :
|
||||
|
||||
StdAfx.h, StdAfx.cpp
|
||||
これらのファイルは、コンパイル済みヘッダー (PCH) ファイル MasterEditorTWL.pch
|
||||
とプリコンパイル済み型ファイル StdAfx.obj をビルドするために使用します。
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
BIN
build/tools/MasterEditorTWL/MasterEditorTWL/Release/BuildLog.htm
Normal file
BIN
build/tools/MasterEditorTWL/MasterEditorTWL/Release/BuildLog.htm
Normal file
Binary file not shown.
BIN
build/tools/MasterEditorTWL/MasterEditorTWL/app.ico
Normal file
BIN
build/tools/MasterEditorTWL/MasterEditorTWL/app.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
63
build/tools/MasterEditorTWL/MasterEditorTWL/app.rc
Normal file
63
build/tools/MasterEditorTWL/MasterEditorTWL/app.rc
Normal file
@ -0,0 +1,63 @@
|
||||
// Microsoft Visual C++ で生成されたリソース スクリプトです。
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 英語 (米国) リソース
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// アイコン
|
||||
//
|
||||
|
||||
// 最初に配置されたアイコン、または ID 値が最も低いアイコンが、アプリケーション アイコンになります。
|
||||
|
||||
LANGUAGE 17, 1
|
||||
#pragma code_page(932)
|
||||
1 ICON "app.ico"
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
"\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE 3 リソースから生成されました。
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // APSTUDIO_INVOKED でない場合
|
||||
|
||||
149
build/tools/MasterEditorTWL/MasterEditorTWL/crc_whole.cpp
Normal file
149
build/tools/MasterEditorTWL/MasterEditorTWL/crc_whole.cpp
Normal file
@ -0,0 +1,149 @@
|
||||
// crc_whole.h の実装
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "crc_whole.h"
|
||||
#include <cstring>
|
||||
#include <cstdio>
|
||||
|
||||
#define CRCPOLY 0x1021
|
||||
#define BUFLEN 0x1000
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
u16 crc_table[0x100];
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
関数名
|
||||
inittable - initialize table
|
||||
|
||||
形式
|
||||
static void inittable(unsigned short *table);
|
||||
|
||||
解説
|
||||
CRC算出を高速化するための参照テーブルを作成する。
|
||||
----------------------------------------------------------------------------*/
|
||||
static void inittable(unsigned short *table)
|
||||
{
|
||||
unsigned short i, j, r;
|
||||
|
||||
for(i = 0; i < 0x100; i++) {
|
||||
r = i << 8;
|
||||
for(j = 0; j < 8; j++) {
|
||||
if(r & 0x8000U)
|
||||
r = (r << 1) ^ CRCPOLY;
|
||||
else
|
||||
r <<= 1;
|
||||
}
|
||||
*table++ = r;
|
||||
}
|
||||
}
|
||||
|
||||
/*============================================================================*
|
||||
CRC計算
|
||||
製品技術部のCRCテーブルを使ったCRC計算関数
|
||||
|
||||
偶数バイトと奇数バイトを入れ替えてから計算する。
|
||||
*============================================================================*/
|
||||
static u16 newGetCRC
|
||||
(
|
||||
u16 start, // CRC初期値(累積値)
|
||||
u16 *datap, // データの先頭を指すポインタ、中島さんのと違い、u8
|
||||
u32 size // バイト単位でのデータサイズ
|
||||
)
|
||||
{
|
||||
u32 i;
|
||||
u16 crc;
|
||||
u8* byte;
|
||||
|
||||
crc = start;
|
||||
byte = (u8 *)datap;
|
||||
|
||||
for (i=0; i<size; i+=2)
|
||||
{
|
||||
u8 byte0, byte1;
|
||||
|
||||
byte0 = *byte; byte++;
|
||||
byte1 = *byte; byte++;
|
||||
|
||||
crc = (crc << 8) ^ crc_table[(crc >> 8) ^ byte1];
|
||||
crc = (crc << 8) ^ crc_table[(crc >> 8) ^ byte0];
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
Name: getWholeCRCInFp
|
||||
|
||||
Description: srlファイル全体のCRCを算出
|
||||
|
||||
Arguments: [in] srlファイルのファイルポインタ
|
||||
[out] CRC格納先
|
||||
|
||||
Return: 成功ならTRUE.
|
||||
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL getWholeCRCInFp( FILE *fp, u16 *pCRC )
|
||||
{
|
||||
u32 file_size;
|
||||
u16 crc;
|
||||
u32 i;
|
||||
u16 data[ 0x1000 / 2 ]; // 64Kバイト(512Kビット)
|
||||
|
||||
if( !fp )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
// ファイルサイズチェック
|
||||
fseek( fp, 0, SEEK_END );
|
||||
file_size = ftell( fp );
|
||||
|
||||
// CRCテーブル初期化(製品技術部のコード)
|
||||
inittable(crc_table);
|
||||
|
||||
// ファイル全体のCRC をとる
|
||||
fseek( fp, 0, SEEK_SET );
|
||||
crc = 0;
|
||||
for ( i=0; i<file_size; i+=sizeof(data) )
|
||||
{
|
||||
fread( (void*)data, sizeof(data), 1, fp );
|
||||
crc = newGetCRC( crc, data, sizeof(data) );
|
||||
}
|
||||
*pCRC = crc;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
Name: getWholeCRCInFile
|
||||
|
||||
Description: srlファイル全体のCRCを算出
|
||||
|
||||
Arguments: [in] srlファイル名(呼び出し前に閉じておくこと)
|
||||
[out] CRC格納先
|
||||
|
||||
Return: None.
|
||||
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL getWholeCRCInFile( System::String ^filename, u16 *pCRC )
|
||||
{
|
||||
FILE* fp;
|
||||
const char *pchFilename =
|
||||
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( filename ).ToPointer();
|
||||
|
||||
fopen_s( &fp, pchFilename, "rb" );
|
||||
if ( fp == NULL )
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
getWholeCRCInFp( fp, pCRC );
|
||||
|
||||
fclose( fp );
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
38
build/tools/MasterEditorTWL/MasterEditorTWL/crc_whole.h
Normal file
38
build/tools/MasterEditorTWL/MasterEditorTWL/crc_whole.h
Normal file
@ -0,0 +1,38 @@
|
||||
#pragma once
|
||||
|
||||
// 署名用の鍵データの宣言
|
||||
|
||||
#include <twl/types.h>
|
||||
#include <cstdio>
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
Name: getWholeCRCInFp
|
||||
|
||||
Description: srlファイル全体のCRCを算出
|
||||
|
||||
Arguments: [in] srlファイルのファイルポインタ
|
||||
[out] CRC格納先
|
||||
|
||||
Return: 成功ならTRUE.
|
||||
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL getWholeCRCInFp( FILE *fp, u16 *pCRC );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
|
||||
Name: getWholeCRCInFile
|
||||
|
||||
Description: srlファイル全体のCRCを算出
|
||||
|
||||
Arguments: [in] srlファイル名(呼び出し前に閉じておくこと)
|
||||
[out] CRC格納先
|
||||
|
||||
Return: None.
|
||||
|
||||
*---------------------------------------------------------------------------*/
|
||||
BOOL getWholeCRCInFile( System::String ^filename, u16 *pCRC );
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
1101
build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.cpp
Normal file
1101
build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.cpp
Normal file
File diff suppressed because it is too large
Load Diff
153
build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.h
Normal file
153
build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.h
Normal file
@ -0,0 +1,153 @@
|
||||
#include <twl/types.h>
|
||||
#include <twl/os/common/format_rom.h>
|
||||
#include "srl.h"
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
// -------------------------------------------------------------------
|
||||
// Type : enum class
|
||||
// Name : ECDeliverableResult
|
||||
//
|
||||
// Description : RCDeliverable クラスの操作でのエラーを宣言
|
||||
// -------------------------------------------------------------------
|
||||
enum class ECDeliverableResult
|
||||
{
|
||||
NOERROR = 0,
|
||||
// エラー特定しなくても原因がわかるときの返り値
|
||||
// (エラーが生じる可能性のある箇所が1つ etc.)
|
||||
ERROR,
|
||||
// ファイル操作でのエラー
|
||||
ERROR_FILE_OPEN,
|
||||
ERROR_FILE_READ,
|
||||
ERROR_FILE_WRITE,
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Type : ref class
|
||||
// Name : RCDeliverable
|
||||
//
|
||||
// Description : 提出書類クラス
|
||||
//
|
||||
// Role : 提出情報の入出力
|
||||
// -------------------------------------------------------------------
|
||||
ref class RCDeliverable
|
||||
{
|
||||
// field
|
||||
public:
|
||||
// 提出情報
|
||||
property System::String ^hProductName; // 製品名
|
||||
property System::String ^hProductCode1; // 製品コード
|
||||
property System::String ^hProductCode2; // 製品コード
|
||||
property System::Int32 ^hReleaseYear; // 発売予定日
|
||||
property System::Int32 ^hReleaseMonth;
|
||||
property System::Int32 ^hReleaseDay;
|
||||
property System::Int32 ^hSubmitYear; // 提出日
|
||||
property System::Int32 ^hSubmitMonth;
|
||||
property System::Int32 ^hSubmitDay;
|
||||
property System::String ^hSubmitWay; // 提出方法
|
||||
property System::String ^hUsage; // 用途
|
||||
property System::String ^hUsageOther; // その他の用途
|
||||
property System::Int32 ^hSubmitVersion; // 提出バージョン
|
||||
property System::String ^hSDK; // SDKバージョン
|
||||
property System::Boolean ^hReleaseForeign; // 海外版の予定
|
||||
property System::String ^hProductNameForeign;
|
||||
property System::String ^hProductCode1Foreign;
|
||||
property System::String ^hProductCode2Foreign;
|
||||
|
||||
// 会社情報
|
||||
|
||||
// 担当者(1人目)
|
||||
property System::String ^hCompany1; // 会社名
|
||||
property System::String ^hDepart1; // 部署名
|
||||
property System::String ^hPerson1; // 名前
|
||||
property System::String ^hFurigana1; // ふりがな
|
||||
property System::String ^hTel1; // 電話番号
|
||||
property System::String ^hFax1; // FAX番号
|
||||
property System::String ^hMail1; // メアド
|
||||
property System::String ^hNTSC1; // NTSC User ID
|
||||
// 担当者(2人目)
|
||||
property System::Boolean ^hIsPerson2; // 2人目情報を入力したか
|
||||
property System::String ^hCompany2;
|
||||
property System::String ^hDepart2;
|
||||
property System::String ^hPerson2;
|
||||
property System::String ^hFurigana2;
|
||||
property System::String ^hTel2;
|
||||
property System::String ^hFax2;
|
||||
property System::String ^hMail2;
|
||||
property System::String ^hNTSC2;
|
||||
|
||||
// プログラム自己申告仕様
|
||||
property System::Boolean ^hIsWireless; // ワイヤレス通信対応
|
||||
property System::Boolean ^hIsTouch; // タッチスクリーン対応
|
||||
property System::Boolean ^hIsMic; // マイク対応
|
||||
property System::Boolean ^hIsWiFi; // Wi-Fi対応
|
||||
property System::Boolean ^hIsGBACartridge; // GBAカートリッジ対応
|
||||
property System::Boolean ^hIsDSCartridge; // DSカード対応
|
||||
property System::Boolean ^hIsSoftReset; // ソフトリセット機能あり
|
||||
property System::Boolean ^hIsPictoChatSearch; // ピクトチャットサーチあり
|
||||
property System::Boolean ^hIsClock; // 時計機能使用
|
||||
property System::Boolean ^hIsAutoBackLightOff; // 自動バックライトOFF機能使用
|
||||
property System::Int32 ^hTimeAutoBackLightOff;// ...................する時間
|
||||
property System::Boolean ^hIsAutoLcdOff; // 自動LCDOFF機能を使用
|
||||
property System::Int32 ^hTimeAutoLcdOff; // ................する時間
|
||||
property System::Boolean ^hIsSleepMode; // スリープモード対応
|
||||
property System::Boolean ^hIsNotSleepClose; // 本体を閉じてもスリープモードに移行しない場合あり
|
||||
property System::Int32 ^hTimeSleepClose; // ........................................時間
|
||||
property System::Boolean ^hIsSleepAlarm; // RTCアラームで復帰する場合あり
|
||||
property System::String ^hProcSleepAlarm; // .........................の処理内容
|
||||
property System::Boolean ^hIsIPLUserComment; // IPLのユーザ名およびコメント使用
|
||||
property System::String ^hSceneIPLUserComment; // 上記を使用している場面(文字列で入力)
|
||||
property System::Boolean ^hIsAllIPLFonts; // IPLで設定可能なフォントをすべて表示できる
|
||||
|
||||
// プログラム自己申告仕様2
|
||||
property System::Boolean ^hIsLangJ; // ゲーム内での使用言語
|
||||
property System::Boolean ^hIsLangE;
|
||||
property System::Boolean ^hIsLangF;
|
||||
property System::Boolean ^hIsLangG;
|
||||
property System::Boolean ^hIsLangI;
|
||||
property System::Boolean ^hIsLangS;
|
||||
property System::Boolean ^hIsLangC;
|
||||
property System::Boolean ^hIsLangK;
|
||||
property System::Boolean ^hIsLangOther;
|
||||
property System::String ^hLangOther;
|
||||
property System::Boolean ^hIsIPLLang; // IPLの言語設定
|
||||
|
||||
// 使用ライセンス
|
||||
property System::Boolean ^hUseLcFont; // LCフォント(SHARP)
|
||||
property System::Boolean ^hUseVx; // VX Middleware(Actimagine)
|
||||
property System::Boolean ^hUseAtok; // ATOK(JUSTSYSTEM)
|
||||
property System::Boolean ^hUseVoiceChat; // VoiceChat(Abiosso)
|
||||
property System::Boolean ^hUseWiFiLib; // WiFiライブラリ(NINTENDO)
|
||||
property System::Boolean ^hUseVoiceRecog; // 音声認識(松下)
|
||||
property System::Boolean ^hUseCharRecog; // 文字認識(Zi)
|
||||
property System::Boolean ^hUseVoiceCombine; // 音声合成(SHARP)
|
||||
property System::Boolean ^hUseNetFront; // NetFront Browser(ACCESS)
|
||||
property System::String ^hUseOthers; // その他(文字列で入力)
|
||||
|
||||
// 備考
|
||||
property System::String ^hCaption;
|
||||
|
||||
// ROMヘッダ不記載のROMバイナリ(SRL)固有情報
|
||||
property System::String ^hBackupMemory; // バックアップメモリの種別
|
||||
|
||||
// constructor and destructor
|
||||
public:
|
||||
|
||||
// method
|
||||
public:
|
||||
|
||||
//
|
||||
// 書類出力
|
||||
//
|
||||
// @arg [out] 出力ファイル名
|
||||
// @arg [in] ROMバイナリ(SRL)固有情報
|
||||
// @arg [in] ファイル全体のCRC
|
||||
// @arg [in] SRLのファイル名(書類に記述するために使用)
|
||||
// @arg [in] 英語フラグ
|
||||
//
|
||||
ECDeliverableResult writeSpreadsheet(
|
||||
System::String ^hFilename, RCSrl ^hSrl, System::UInt16 ^hCRC, System::String ^hSrlFilename, System::Boolean english );
|
||||
|
||||
}; // end of ref class RCDeliverable
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
69
build/tools/MasterEditorTWL/MasterEditorTWL/keys.cpp
Normal file
69
build/tools/MasterEditorTWL/MasterEditorTWL/keys.cpp
Normal file
@ -0,0 +1,69 @@
|
||||
// 署名用の鍵データ from makerom.TWL
|
||||
|
||||
#include "stdafx.h"
|
||||
#include <twl/types.h>
|
||||
#include "keys.h"
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
// ユーザアプリ用
|
||||
|
||||
// 開発アプリROMヘッダ署名用公開鍵
|
||||
const u8 g_devPubKey_DER[ 0xa2 ] = {
|
||||
0x30, 0x81, 0x9F, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x01,
|
||||
0x05, 0x00, 0x03, 0x81, 0x8D, 0x00, 0x30, 0x81, 0x89, 0x02, 0x81, 0x81, 0x00, 0xAC, 0x93, 0xBB,
|
||||
0x3C, 0x15, 0x5C, 0x5F, 0x25, 0xB0, 0x4C, 0x37, 0xA4, 0x2D, 0x85, 0x29, 0x1D, 0x7A, 0x9D, 0x2D,
|
||||
0xD5, 0x79, 0xB5, 0x5D, 0xB1, 0x08, 0x20, 0x9C, 0xF0, 0x4C, 0x56, 0x27, 0x97, 0xF8, 0x7E, 0x3E,
|
||||
0xCB, 0x94, 0x06, 0x05, 0x94, 0x00, 0x92, 0x9B, 0xB0, 0x5B, 0x06, 0xF6, 0xAF, 0xAA, 0x9C, 0xA5,
|
||||
0xF0, 0x11, 0xA7, 0x8A, 0xCB, 0x0C, 0x11, 0xD6, 0x0C, 0x3D, 0x30, 0xAC, 0x51, 0x79, 0x5A, 0xB5,
|
||||
0x7F, 0x11, 0x92, 0x74, 0x48, 0x82, 0x81, 0xBF, 0x3B, 0xFA, 0x93, 0xBF, 0x6B, 0x5B, 0x3F, 0x86,
|
||||
0x96, 0x4F, 0xCC, 0x90, 0x12, 0xB2, 0x39, 0x8D, 0x68, 0x16, 0x7B, 0xC6, 0x87, 0xF1, 0xF5, 0x60,
|
||||
0x62, 0x39, 0xFB, 0x10, 0x7E, 0x48, 0x7F, 0xDD, 0x82, 0x38, 0x38, 0x76, 0xB5, 0xCE, 0x21, 0x4B,
|
||||
0xC9, 0x6F, 0x31, 0x8D, 0x23, 0x57, 0x3D, 0xB6, 0x6C, 0xEE, 0xC2, 0x0D, 0x11, 0x02, 0x03, 0x01,
|
||||
0x00, 0x01,
|
||||
};
|
||||
|
||||
// 開発アプリROMヘッダ署名用秘密鍵
|
||||
const u8 g_devPrivKey_DER[ 0x263 ] = {
|
||||
0x30, 0x82, 0x02, 0x5F, 0x02, 0x01, 0x00, 0x02, 0x81, 0x81, 0x00, 0xAC, 0x93, 0xBB, 0x3C, 0x15,
|
||||
0x5C, 0x5F, 0x25, 0xB0, 0x4C, 0x37, 0xA4, 0x2D, 0x85, 0x29, 0x1D, 0x7A, 0x9D, 0x2D, 0xD5, 0x79,
|
||||
0xB5, 0x5D, 0xB1, 0x08, 0x20, 0x9C, 0xF0, 0x4C, 0x56, 0x27, 0x97, 0xF8, 0x7E, 0x3E, 0xCB, 0x94,
|
||||
0x06, 0x05, 0x94, 0x00, 0x92, 0x9B, 0xB0, 0x5B, 0x06, 0xF6, 0xAF, 0xAA, 0x9C, 0xA5, 0xF0, 0x11,
|
||||
0xA7, 0x8A, 0xCB, 0x0C, 0x11, 0xD6, 0x0C, 0x3D, 0x30, 0xAC, 0x51, 0x79, 0x5A, 0xB5, 0x7F, 0x11,
|
||||
0x92, 0x74, 0x48, 0x82, 0x81, 0xBF, 0x3B, 0xFA, 0x93, 0xBF, 0x6B, 0x5B, 0x3F, 0x86, 0x96, 0x4F,
|
||||
0xCC, 0x90, 0x12, 0xB2, 0x39, 0x8D, 0x68, 0x16, 0x7B, 0xC6, 0x87, 0xF1, 0xF5, 0x60, 0x62, 0x39,
|
||||
0xFB, 0x10, 0x7E, 0x48, 0x7F, 0xDD, 0x82, 0x38, 0x38, 0x76, 0xB5, 0xCE, 0x21, 0x4B, 0xC9, 0x6F,
|
||||
0x31, 0x8D, 0x23, 0x57, 0x3D, 0xB6, 0x6C, 0xEE, 0xC2, 0x0D, 0x11, 0x02, 0x03, 0x01, 0x00, 0x01,
|
||||
0x02, 0x81, 0x81, 0x00, 0x95, 0xDC, 0xC8, 0x18, 0x19, 0xF8, 0x98, 0x0B, 0x73, 0x78, 0x0C, 0x4D,
|
||||
0x7E, 0xD6, 0x06, 0xE9, 0x39, 0x83, 0xEA, 0xBC, 0x59, 0xAF, 0x7C, 0x87, 0xF2, 0x25, 0xD8, 0x02,
|
||||
0xF8, 0x57, 0x4C, 0x94, 0xB4, 0xCE, 0x74, 0x9B, 0x76, 0x94, 0x70, 0x1D, 0xA1, 0x0D, 0xAF, 0x33,
|
||||
0x4B, 0x28, 0xD5, 0xE9, 0xA0, 0x3F, 0xDD, 0xFD, 0x86, 0x67, 0x36, 0xA8, 0xB2, 0x77, 0x7E, 0xA8,
|
||||
0x2C, 0x2E, 0xEB, 0x43, 0x7B, 0xE4, 0xA3, 0x66, 0x7C, 0x3A, 0x00, 0x90, 0xC5, 0xF5, 0xF8, 0x59,
|
||||
0xF9, 0x95, 0x88, 0x2A, 0xA8, 0xF4, 0x94, 0x41, 0x05, 0x02, 0xA0, 0x47, 0xC0, 0xC1, 0xB9, 0x80,
|
||||
0x1F, 0x49, 0xBB, 0x09, 0xBF, 0x42, 0xBA, 0xE6, 0xEE, 0x8D, 0x21, 0x1D, 0xFB, 0x8F, 0xC7, 0xB7,
|
||||
0x71, 0x00, 0xFB, 0x35, 0x13, 0xD8, 0xBC, 0xA3, 0x3F, 0x3A, 0xCF, 0x96, 0xB0, 0x0B, 0x8A, 0x61,
|
||||
0x9C, 0x70, 0xF8, 0x91, 0x02, 0x41, 0x00, 0xD8, 0xAA, 0x14, 0x21, 0x49, 0x7A, 0x2C, 0xC3, 0xAA,
|
||||
0xDA, 0xFB, 0x17, 0xB0, 0xD7, 0xF5, 0x5A, 0x77, 0xEE, 0xF0, 0xA9, 0x09, 0x18, 0x85, 0x21, 0xD4,
|
||||
0x12, 0x4F, 0x85, 0x35, 0x05, 0x20, 0x36, 0x22, 0x65, 0x2C, 0xDD, 0xFA, 0xF5, 0x8E, 0xA5, 0x2E,
|
||||
0xC4, 0xFD, 0xD1, 0xFA, 0xC6, 0x8A, 0x0F, 0x98, 0x69, 0xD9, 0x82, 0x50, 0xDF, 0xFA, 0x80, 0xC3,
|
||||
0xFE, 0x5E, 0x15, 0x59, 0xA8, 0xD4, 0x05, 0x02, 0x41, 0x00, 0xCB, 0xE8, 0x9A, 0xF2, 0x5F, 0xC1,
|
||||
0x75, 0xA5, 0x1E, 0x95, 0xE4, 0x4F, 0x1A, 0x48, 0xA1, 0x75, 0x9A, 0x6E, 0xDB, 0xA2, 0x31, 0xD6,
|
||||
0x66, 0x29, 0xEA, 0x19, 0x37, 0x0C, 0xB2, 0x89, 0xD3, 0x03, 0x15, 0xE6, 0x7A, 0x1A, 0xCB, 0xCE,
|
||||
0xB9, 0x79, 0x11, 0x9B, 0x71, 0x78, 0xA5, 0xBB, 0x07, 0x6F, 0xA3, 0x05, 0x3B, 0x84, 0x23, 0x47,
|
||||
0xAB, 0x20, 0x34, 0x39, 0xB0, 0x59, 0x87, 0xEC, 0xCE, 0x9D, 0x02, 0x41, 0x00, 0xB8, 0xE0, 0x98,
|
||||
0x00, 0xB7, 0x64, 0x0B, 0x22, 0x83, 0x7E, 0x0B, 0xD7, 0xF1, 0x4C, 0xB5, 0xCD, 0x96, 0x9D, 0x4A,
|
||||
0xB9, 0xD2, 0x4B, 0x1B, 0xFE, 0xFB, 0xA9, 0x0C, 0x35, 0xCC, 0x42, 0x2D, 0x74, 0x43, 0xF1, 0x35,
|
||||
0x51, 0xCD, 0x3D, 0x0F, 0x95, 0x1F, 0xCD, 0x74, 0x10, 0x62, 0xFE, 0x5A, 0xFC, 0x67, 0xBF, 0x9A,
|
||||
0x9C, 0x3A, 0x4A, 0x84, 0xC4, 0xAF, 0x79, 0x33, 0xEA, 0xDF, 0xF0, 0xD1, 0xC9, 0x02, 0x41, 0x00,
|
||||
0xAA, 0x5B, 0x16, 0x00, 0xC2, 0xB1, 0x5D, 0x39, 0x6B, 0x59, 0x2D, 0x5A, 0x4D, 0x0A, 0x3B, 0x22,
|
||||
0x86, 0xB8, 0x71, 0x74, 0x8B, 0x90, 0xA4, 0xE0, 0x05, 0xBD, 0xB5, 0x39, 0x3D, 0x7C, 0x5A, 0x37,
|
||||
0xAC, 0xB7, 0x56, 0x72, 0x46, 0xAD, 0xDA, 0x54, 0xE4, 0xB9, 0xEA, 0x4E, 0x32, 0xA0, 0x13, 0xF1,
|
||||
0x57, 0xD0, 0x4A, 0x4D, 0xF6, 0x2F, 0xAD, 0x2F, 0x85, 0x92, 0x60, 0xDC, 0x1B, 0xEC, 0x63, 0x1D,
|
||||
0x02, 0x41, 0x00, 0xAC, 0x40, 0x43, 0xF2, 0x74, 0x2C, 0x56, 0xF4, 0xB9, 0x52, 0xB0, 0xCC, 0x89,
|
||||
0xC7, 0x70, 0x33, 0xA9, 0xC0, 0xD3, 0x4E, 0x35, 0xFC, 0x49, 0x69, 0xCB, 0x22, 0x9C, 0x0D, 0xD0,
|
||||
0xE1, 0x8F, 0xCC, 0xF4, 0xAD, 0x25, 0xC2, 0xE1, 0x84, 0xD6, 0x34, 0x35, 0x89, 0xFA, 0xC4, 0xBA,
|
||||
0x43, 0x34, 0xF4, 0xD2, 0xB2, 0x36, 0x56, 0xB9, 0x96, 0x78, 0x4D, 0x7A, 0xE3, 0x4D, 0xA9, 0x5E,
|
||||
0xF5, 0x3E, 0x88,
|
||||
};
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
15
build/tools/MasterEditorTWL/MasterEditorTWL/keys.h
Normal file
15
build/tools/MasterEditorTWL/MasterEditorTWL/keys.h
Normal file
@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
// 署名用の鍵データの宣言
|
||||
|
||||
#include <twl/types.h>
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
|
||||
// 開発アプリROMヘッダ署名用秘密鍵
|
||||
|
||||
extern const u8 g_devPubKey_DER[ 0xa2 ];
|
||||
extern const u8 g_devPrivKey_DER[ 0x263 ];
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
3
build/tools/MasterEditorTWL/MasterEditorTWL/resource.h
Normal file
3
build/tools/MasterEditorTWL/MasterEditorTWL/resource.h
Normal file
@ -0,0 +1,3 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Visual C++ generated include file.
|
||||
// Used by app.rc
|
||||
460
build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp
Normal file
460
build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp
Normal file
@ -0,0 +1,460 @@
|
||||
// srl.h のクラス実装
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "srl.h"
|
||||
#include "utility.h"
|
||||
#include "keys.h"
|
||||
#include <acsign/include/acsign.h>
|
||||
#include <format_rom_private.h>
|
||||
#include <cstring>
|
||||
#include <cstdio>
|
||||
|
||||
using namespace MasterEditorTWL;
|
||||
|
||||
//
|
||||
// RCSrl クラス
|
||||
//
|
||||
|
||||
// constructor
|
||||
RCSrl::RCSrl()
|
||||
{
|
||||
this->pRomHeader = new (ROM_Header);
|
||||
std::memset( pRomHeader, 0, sizeof(ROM_Header) );
|
||||
}
|
||||
|
||||
// destructor
|
||||
RCSrl::~RCSrl()
|
||||
{
|
||||
// ポインタは(たぶん) unmanaged なので自主的に解放する
|
||||
delete (this->pRomHeader);
|
||||
}
|
||||
|
||||
//
|
||||
// ROMヘッダをファイルからリード
|
||||
//
|
||||
// @arg [in] 入力ファイル名
|
||||
//
|
||||
ECSrlResult RCSrl::readFromFile( System::String ^filename )
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
const char *pchFilename =
|
||||
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( filename ).ToPointer();
|
||||
|
||||
// ファイルを開いてROMヘッダのみ読み出す
|
||||
if( fopen_s( &fp, pchFilename, "rb" ) != NULL )
|
||||
{
|
||||
return (ECSrlResult::ERROR_FILE_OPEN);
|
||||
}
|
||||
(void)fseek( fp, 0, SEEK_SET ); // ROMヘッダはsrlの先頭から
|
||||
|
||||
// 1バイトをsizeof(~)だけリード (逆だと返り値がsizeof(~)にならないので注意)
|
||||
if( fread( (void*)(this->pRomHeader), 1, sizeof(ROM_Header), fp ) != sizeof(ROM_Header) )
|
||||
{
|
||||
return (ECSrlResult::ERROR_FILE_READ);
|
||||
}
|
||||
// ファイルを閉じる前にROMヘッダ以外の領域から設定を取り出す
|
||||
{
|
||||
//ECSrlResult r;
|
||||
(void)this->hasDSDLPlaySign( fp );
|
||||
//if( r != ECSrlResult::NOERROR )
|
||||
//{
|
||||
// (void)fclose(fp);
|
||||
// return r;
|
||||
//}
|
||||
}
|
||||
(void)fclose( fp );
|
||||
|
||||
// ROMヘッダの値をROM固有情報フィールドに反映させる
|
||||
(void)this->setRomInfo();
|
||||
|
||||
return (ECSrlResult::NOERROR);
|
||||
}
|
||||
|
||||
//
|
||||
// ROMヘッダをファイルにライト
|
||||
//
|
||||
// @arg [in] 出力ファイル名
|
||||
//
|
||||
ECSrlResult RCSrl::writeToFile( System::String ^filename )
|
||||
{
|
||||
FILE *fp = NULL;
|
||||
const char *pchFilename =
|
||||
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( filename ).ToPointer();
|
||||
ECSrlResult result;
|
||||
|
||||
// ROMヘッダにROM固有情報を反映させる
|
||||
result = this->setRomHeader();
|
||||
if( result != ECSrlResult::NOERROR )
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
// ファイルにROMヘッダをライト
|
||||
if( fopen_s( &fp, pchFilename, "r+b" ) != NULL ) // 上書き・バイナリ
|
||||
{
|
||||
return (ECSrlResult::ERROR_FILE_OPEN);
|
||||
}
|
||||
(void)fseek( fp, 0, SEEK_SET );
|
||||
|
||||
if( fwrite( (const void*)(this->pRomHeader), 1, sizeof(ROM_Header), fp ) != sizeof(ROM_Header) )
|
||||
{
|
||||
return (ECSrlResult::ERROR_FILE_WRITE);
|
||||
}
|
||||
(void)fclose( fp );
|
||||
|
||||
return (ECSrlResult::NOERROR);
|
||||
}
|
||||
|
||||
//
|
||||
// ROMヘッダから取得したROM固有情報をフィールドに反映させる
|
||||
//
|
||||
ECSrlResult RCSrl::setRomInfo(void)
|
||||
{
|
||||
System::Int32 i;
|
||||
System::Text::UTF8Encoding^ utf8 = gcnew System::Text::UTF8Encoding( true ); // char->String変換に必要
|
||||
|
||||
// NTR互換情報
|
||||
this->hTitleName = gcnew System::String( this->pRomHeader->s.title_name, 0, TITLE_NAME_MAX, utf8 );
|
||||
this->hGameCode = gcnew System::String( this->pRomHeader->s.game_code, 0, GAME_CODE_MAX, utf8 );
|
||||
this->hMakerCode = gcnew System::String( this->pRomHeader->s.maker_code, 0, MAKER_CODE_MAX, utf8 );
|
||||
switch( this->pRomHeader->s.platform_code )
|
||||
{
|
||||
case PLATFORM_CODE_NTR: this->hPlatform = gcnew System::String( "NTR Limited" ); break;
|
||||
case PLATFORM_CODE_TWL_HYBLID: this->hPlatform = gcnew System::String( "NTR/TWL Hybrid" ); break;
|
||||
case PLATFORM_CODE_TWL_LIMITED: this->hPlatform = gcnew System::String( "TWL Limited" ); break;
|
||||
default:
|
||||
this->hPlatform = nullptr;
|
||||
break;
|
||||
}
|
||||
this->hRomSize = MasterEditorTWL::transRomSizeToString( this->pRomHeader->s.rom_size );
|
||||
//this->hForKorea = gcnew System::Byte( this->pRomHeader->s.for_korea );
|
||||
//this->hForChina = gcnew System::Byte( this->pRomHeader->s.for_china );
|
||||
this->hRomVersion = gcnew System::Byte( this->pRomHeader->s.rom_version );
|
||||
this->hHeaderCRC = gcnew System::UInt16( this->pRomHeader->s.header_crc16 );
|
||||
|
||||
switch( this->pRomHeader->s.game_cmd_param & CARD_LATENCY_MASK )
|
||||
{
|
||||
case CARD_MROM_GAME_LATENCY:
|
||||
this->hLatency = "MROM";
|
||||
break;
|
||||
|
||||
case CARD_1TROM_GAME_LATENCY:
|
||||
this->hLatency = "1TROM";
|
||||
break;
|
||||
|
||||
default:
|
||||
this->hLatency = "Illegal";
|
||||
break;
|
||||
}
|
||||
|
||||
// ペアレンタルコントロール
|
||||
this->hArrayParentalRating = gcnew cli::array<System::Byte ^>(PARENTAL_CONTROL_INFO_SIZE);
|
||||
this->hArrayParentalEffect = gcnew cli::array<System::Boolean ^>(PARENTAL_CONTROL_INFO_SIZE);
|
||||
this->hArrayParentalAlways = gcnew cli::array<System::Boolean ^>(PARENTAL_CONTROL_INFO_SIZE);
|
||||
for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ )
|
||||
{
|
||||
System::Byte rating = this->pRomHeader->s.parental_control_rating_info[i] & OS_TWL_PCTL_OGNINFO_AGE_MASK;
|
||||
System::Boolean effect = ((this->pRomHeader->s.parental_control_rating_info[i] & OS_TWL_PCTL_OGNINFO_ENABLE_MASK) != 0)?true:false;
|
||||
System::Boolean force = ((this->pRomHeader->s.parental_control_rating_info[i] & OS_TWL_PCTL_OGNINFO_ALWAYS_MASK) != 0)?true:false;
|
||||
|
||||
this->hArrayParentalRating[i] = gcnew System::Byte( rating );
|
||||
this->hArrayParentalEffect[i] = gcnew System::Boolean( effect );
|
||||
this->hArrayParentalAlways[i] = gcnew System::Boolean( force );
|
||||
}
|
||||
|
||||
// TWL専用情報
|
||||
this->hIsNormalJump = gcnew System::Boolean( (this->pRomHeader->s.permit_landing_normal_jump != 0)?true:false );
|
||||
this->hIsTmpJump = gcnew System::Boolean( (this->pRomHeader->s.permit_landing_tmp_jump != 0)?true:false );
|
||||
this->hNormalRomOffset = gcnew System::UInt32( (u32)(this->pRomHeader->s.twl_card_normal_area_rom_offset) * 0x80000 );
|
||||
this->hKeyTableRomOffset = gcnew System::UInt32( (u32)(this->pRomHeader->s.twl_card_keytable_area_rom_offset) * 0x80000 );
|
||||
this->hEULAVersion = gcnew System::Byte( this->pRomHeader->s.agree_EULA_version );
|
||||
this->hPublicSize = gcnew System::UInt32( this->pRomHeader->s.public_save_data_size );
|
||||
this->hPrivateSize = gcnew System::UInt32( this->pRomHeader->s.private_save_data_size );
|
||||
|
||||
u8 *idL = this->pRomHeader->s.titleID_Lo;
|
||||
u32 idH = this->pRomHeader->s.titleID_Hi;
|
||||
u32 val;
|
||||
val = ((u32)(idL[0]) << 24) | ((u32)(idL[1]) << 16) | ((u32)(idL[2]) << 8) | ((u32)(idL[3])); // ビッグエンディアン
|
||||
this->hTitleIDLo = gcnew System::UInt32( val );
|
||||
this->hTitleIDHi = gcnew System::UInt32( idH );
|
||||
|
||||
// TitleIDからわかる情報
|
||||
this->hIsAppLauncher = gcnew System::Boolean( false );
|
||||
this->hIsAppUser = gcnew System::Boolean( false );
|
||||
this->hIsAppSystem = gcnew System::Boolean( false );
|
||||
this->hIsAppSecure = gcnew System::Boolean( false );
|
||||
this->hIsLaunch = gcnew System::Boolean( false );
|
||||
this->hIsMediaNand = gcnew System::Boolean( false );
|
||||
this->hIsDataOnly = gcnew System::Boolean( false );
|
||||
if( (idL[3]=='H') && (idL[2]=='N') && (idL[1]=='A') ) // ランチャアプリかどうかはTitleID_Loの値で決定
|
||||
{
|
||||
*(this->hIsAppLauncher) = true;
|
||||
}
|
||||
if( idH & TITLE_ID_HI_SECURE_FLAG_MASK ) // 各ビットは排他的とは限らないのでelse ifにはならない
|
||||
{
|
||||
*(this->hIsAppSecure) = true;
|
||||
}
|
||||
if( idH & TITLE_ID_HI_DATA_ONLY_FLAG_MASK )
|
||||
{
|
||||
*(this->hIsDataOnly) = true;
|
||||
}
|
||||
if( idH & TITLE_ID_HI_MEDIA_MASK )
|
||||
{
|
||||
*(this->hIsMediaNand) = true;
|
||||
}
|
||||
if( (idH & TITLE_ID_HI_NOT_LAUNCH_FLAG_MASK) == 0 ) // ビットが0のときLaunch
|
||||
{
|
||||
*(this->hIsLaunch) = true;
|
||||
}
|
||||
if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 1 )
|
||||
{
|
||||
*(this->hIsAppSystem) = true;
|
||||
}
|
||||
if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 0 )
|
||||
{
|
||||
*(this->hIsAppUser) = true;
|
||||
}
|
||||
u16 pub = (u16)((idH & TITLE_ID_HI_PUBLISHER_CODE_MASK) >> TITLE_ID_HI_PUBLISHER_CODE_SHIFT);
|
||||
this->hPublisherCode = gcnew System::UInt16( pub );
|
||||
|
||||
// TWL拡張フラグ
|
||||
this->hIsCodecTWL = gcnew System::Boolean( (this->pRomHeader->s.exFlags.codec_mode != 0)?true:false );
|
||||
this->hIsEULA = gcnew System::Boolean( (this->pRomHeader->s.exFlags.agree_EULA != 0)?true:false );
|
||||
this->hIsSubBanner = gcnew System::Boolean( (this->pRomHeader->s.exFlags.availableSubBannerFile != 0)?true:false );
|
||||
this->hIsWiFiIcon = gcnew System::Boolean( (this->pRomHeader->s.exFlags.WiFiConnectionIcon != 0)?true:false );
|
||||
this->hIsWirelessIcon = gcnew System::Boolean( (this->pRomHeader->s.exFlags.DSWirelessIcon != 0)?true:false );
|
||||
this->hIsWL = gcnew System::Boolean( (this->pRomHeader->s.exFlags.enable_nitro_whitelist_signature != 0)?true:false );
|
||||
|
||||
// TWLアクセスコントロール
|
||||
this->hIsCommonClientKey = gcnew System::Boolean( (this->pRomHeader->s.access_control.common_client_key != 0)?true:false );
|
||||
this->hIsAesSlotBForES = gcnew System::Boolean( (this->pRomHeader->s.access_control.hw_aes_slot_B != 0)?true:false );
|
||||
this->hIsAesSlotCForNAM = gcnew System::Boolean( (this->pRomHeader->s.access_control.hw_aes_slot_C != 0)?true:false );
|
||||
this->hIsSD = gcnew System::Boolean( (this->pRomHeader->s.access_control.sd_card_access != 0)?true:false );
|
||||
this->hIsNAND = gcnew System::Boolean( (this->pRomHeader->s.access_control.nand_access != 0)?true:false );
|
||||
this->hIsGameCardOn = gcnew System::Boolean( (this->pRomHeader->s.access_control.game_card_on != 0)?true:false );
|
||||
this->hIsShared2 = gcnew System::Boolean( (this->pRomHeader->s.access_control.shared2_file != 0)?true:false );
|
||||
this->hIsAesSlotBForJpegEnc = gcnew System::Boolean( (this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0)?true:false );
|
||||
this->hIsGameCardNitro = gcnew System::Boolean( (this->pRomHeader->s.access_control.game_card_nitro_mode != 0)?true:false );
|
||||
this->hIsAesSlotAForSSL = gcnew System::Boolean( (this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert != 0)?true:false );
|
||||
this->hIsCommonClientKeyForDebugger
|
||||
= gcnew System::Boolean( (this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0)?true:false );
|
||||
|
||||
// Shared2ファイルサイズ
|
||||
this->hShared2Size0 = gcnew System::UInt32( 0 );
|
||||
this->hShared2Size1 = gcnew System::UInt32( 0 );
|
||||
this->hShared2Size2 = gcnew System::UInt32( 0 );
|
||||
this->hShared2Size3 = gcnew System::UInt32( 0 );
|
||||
this->hShared2Size4 = gcnew System::UInt32( 0 );
|
||||
this->hShared2Size5 = gcnew System::UInt32( 0 );
|
||||
u32 unit = 16 * 1024; // 16KBの乗数が格納されている
|
||||
if( this->pRomHeader->s.shared2_file0_size != 0 )
|
||||
{
|
||||
*(this->hShared2Size0) = (this->pRomHeader->s.shared2_file0_size * unit) + unit;
|
||||
}
|
||||
if( this->pRomHeader->s.shared2_file1_size != 0 )
|
||||
{
|
||||
*(this->hShared2Size1) = (this->pRomHeader->s.shared2_file1_size * unit) + unit;
|
||||
}
|
||||
if( this->pRomHeader->s.shared2_file2_size != 0 )
|
||||
{
|
||||
*(this->hShared2Size2) = (this->pRomHeader->s.shared2_file2_size * unit) + unit;
|
||||
}
|
||||
if( this->pRomHeader->s.shared2_file3_size != 0 )
|
||||
{
|
||||
*(this->hShared2Size3) = (this->pRomHeader->s.shared2_file3_size * unit) + unit;
|
||||
}
|
||||
if( this->pRomHeader->s.shared2_file4_size != 0 )
|
||||
{
|
||||
*(this->hShared2Size4) = (this->pRomHeader->s.shared2_file4_size * unit) + unit;
|
||||
}
|
||||
if( this->pRomHeader->s.shared2_file5_size != 0 )
|
||||
{
|
||||
*(this->hShared2Size5) = (this->pRomHeader->s.shared2_file5_size * unit) + unit;
|
||||
}
|
||||
|
||||
// カードリージョン
|
||||
const u32 maskJapan = 0x00000001;
|
||||
const u32 maskAmerica = 0x00000002;
|
||||
const u32 maskEurope = 0x00000004;
|
||||
const u32 maskAustralia = 0x00000008;
|
||||
const u32 maskChina = 0x00000010;
|
||||
const u32 maskKorea = 0x00000020;
|
||||
const u32 map = this->pRomHeader->s.card_region_bitmap;
|
||||
this->hIsRegionJapan = gcnew System::Boolean( ((map & maskJapan) != 0)?true:false );
|
||||
this->hIsRegionAmerica = gcnew System::Boolean( ((map & maskAmerica) != 0)?true:false );
|
||||
this->hIsRegionEurope = gcnew System::Boolean( ((map & maskEurope) != 0)?true:false );
|
||||
this->hIsRegionAustralia = gcnew System::Boolean( ((map & maskAustralia) != 0)?true:false );
|
||||
//this->hIsRegionChina = gcnew System::Boolean( ((map & maskChina) != 0)?true:false );
|
||||
//this->hIsRegionKorea = gcnew System::Boolean( ((map & maskKorea) != 0)?true:false );
|
||||
|
||||
return ECSrlResult::NOERROR;
|
||||
} // ECSrlResult RCSrl::setRomInfo(void)
|
||||
|
||||
//
|
||||
// ROMヘッダにROM固有情報フィールドの値を反映させる
|
||||
//
|
||||
ECSrlResult RCSrl::setRomHeader(void)
|
||||
{
|
||||
System::Int32 i;
|
||||
ECSrlResult result;
|
||||
|
||||
// ROMヘッダの[0,0x160)の領域はRead Onlyで変更しない
|
||||
|
||||
// いくつかのフラグをROMヘッダに反映
|
||||
this->pRomHeader->s.exFlags.agree_EULA = (*(this->hIsEULA) == true)?1:0;
|
||||
this->pRomHeader->s.agree_EULA_version = *(this->hEULAVersion);
|
||||
this->pRomHeader->s.exFlags.WiFiConnectionIcon = (*(this->hIsWiFiIcon) == true)?1:0;
|
||||
this->pRomHeader->s.exFlags.DSWirelessIcon = (*(this->hIsWirelessIcon) == true)?1:0;
|
||||
|
||||
// ペアレンタルコントロール
|
||||
for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ )
|
||||
{
|
||||
System::Byte effect = 0;
|
||||
System::Byte force = 0;
|
||||
if( this->hArrayParentalEffect[i]->Equals(true) )
|
||||
{
|
||||
effect = OS_TWL_PCTL_OGNINFO_ENABLE_MASK;
|
||||
}
|
||||
if( this->hArrayParentalAlways[i]->Equals(true) )
|
||||
{
|
||||
force = OS_TWL_PCTL_OGNINFO_ALWAYS_MASK;
|
||||
}
|
||||
|
||||
this->pRomHeader->s.parental_control_rating_info[i] = effect | force | *(this->hArrayParentalRating[i]);
|
||||
}
|
||||
|
||||
// ROMヘッダのCRCと署名を更新する
|
||||
result = this->calcRomHeaderCRC();
|
||||
if( result != ECSrlResult::NOERROR )
|
||||
{
|
||||
return result;
|
||||
}
|
||||
result = this->signRomHeader();
|
||||
if( result != ECSrlResult::NOERROR )
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
||||
return ECSrlResult::NOERROR;
|
||||
} // ECSrlResult RCSrl::setRomHeader(void)
|
||||
|
||||
//
|
||||
// ヘッダのCRCを算出
|
||||
//
|
||||
#define HEADER_CRC16_INIT_VALUE (0xffff)
|
||||
#define HEADER_CALC_CRC16_SIZE (0x15e)
|
||||
ECSrlResult RCSrl::calcRomHeaderCRC(void)
|
||||
{
|
||||
u16 r1;
|
||||
u16 total = HEADER_CRC16_INIT_VALUE;
|
||||
int size = HEADER_CALC_CRC16_SIZE;
|
||||
const u8 *data = (u8*)this->pRomHeader;
|
||||
|
||||
// CRCテーブルは固定
|
||||
const u16 CRC16Table[16] =
|
||||
{
|
||||
0x0000, 0xCC01, 0xD801, 0x1400,
|
||||
0xF001, 0x3C00, 0x2800, 0xE401,
|
||||
0xA001, 0x6C00, 0x7800, 0xB401,
|
||||
0x5000, 0x9C01, 0x8801, 0x4400
|
||||
};
|
||||
|
||||
// CRC計算
|
||||
while (size-- > 0)
|
||||
{
|
||||
// 下位4bit
|
||||
r1 = CRC16Table[total & 0xf];
|
||||
total = (total >> 4) & 0x0fff;
|
||||
total = total ^ r1 ^ CRC16Table[*data & 0xf];
|
||||
|
||||
// 上位4bit
|
||||
r1 = CRC16Table[total & 0xf];
|
||||
total = (total >> 4) & 0x0fff;
|
||||
total = total ^ r1 ^ CRC16Table[(*data >> 4) & 0xf];
|
||||
|
||||
data++;
|
||||
}
|
||||
|
||||
// ROMヘッダのCRC領域を上書き
|
||||
this->pRomHeader->s.header_crc16 = total;
|
||||
|
||||
return (ECSrlResult::NOERROR);
|
||||
} // ECSrlResult RCSrl::calcRomHeaderCRC(void)
|
||||
|
||||
//
|
||||
// ROMヘッダを再署名
|
||||
//
|
||||
ECSrlResult RCSrl::signRomHeader(void)
|
||||
{
|
||||
SignatureData signSrc; // 署名のもととなるダイジェスト値
|
||||
u8 signDst[ RSA_KEY_LENGTH ]; // 署名の格納先Tmpバッファ
|
||||
u8 decryptBlock[ RSA_KEY_LENGTH ]; // 署名を解除後ブロックバッファ
|
||||
BOOL result;
|
||||
ROM_Header rh;
|
||||
int pos;
|
||||
|
||||
// ROMヘッダのダイジェストを算出(先頭から証明書領域の直前までが対象)
|
||||
ACSign_DigestUnit(
|
||||
signSrc.digest,
|
||||
this->pRomHeader,
|
||||
(u32)&(rh.certificate) - (u32)&(rh) // this->pRomHeader はマネージヒープ上にあるので実アドレスを取得できない
|
||||
);
|
||||
|
||||
// ダイジェストに署名をかける
|
||||
result = ACSign_Encrypto( signDst, g_devPrivKey_DER, &signSrc, sizeof(SignatureData) );
|
||||
if( !result )
|
||||
{
|
||||
return (ECSrlResult::ERROR_SIGN_ENCRYPT);
|
||||
}
|
||||
|
||||
// 署名を解除してダイジェストと一致するかベリファイする
|
||||
result = ACSign_Decrypto( decryptBlock, g_devPubKey_DER, signDst, RSA_KEY_LENGTH );
|
||||
for( pos=0; pos < RSA_KEY_LENGTH; pos++ )
|
||||
{
|
||||
if( decryptBlock[pos] == 0x0 ) // 解除後ブロックから実データをサーチ
|
||||
break;
|
||||
}
|
||||
if( !result || (memcmp( &signSrc, &(decryptBlock[pos+1]), sizeof(SignatureData) ) != 0) )
|
||||
{
|
||||
return (ECSrlResult::ERROR_SIGN_DECRYPT);
|
||||
}
|
||||
|
||||
// ROMヘッダに署名を上書き
|
||||
memcpy( this->pRomHeader->signature, signDst, RSA_KEY_LENGTH );
|
||||
|
||||
return (ECSrlResult::NOERROR);
|
||||
} // ECSrlResult RCSrl::signRomHeader(void)
|
||||
|
||||
//
|
||||
// DSダウンロード署名がSRLに格納されているか調べる
|
||||
//
|
||||
ECSrlResult RCSrl::hasDSDLPlaySign( FILE *fp )
|
||||
{
|
||||
const s32 DSDLPLAY_SIZE = 0x88;
|
||||
u8 buf[ DSDLPLAY_SIZE ];
|
||||
u32 offset;
|
||||
|
||||
// 署名領域をSRLから読み込む
|
||||
offset = this->pRomHeader->s.rom_valid_size;
|
||||
if( fseek( fp, offset, SEEK_SET ) != 0 )
|
||||
{
|
||||
this->hHasDSDLPlaySign = gcnew System::Boolean( false ); // 署名はNTRのROM領域の最後に入るので
|
||||
return ECSrlResult::ERROR_FILE_READ; // NTRのSRLに署名が格納されていない場合はシークもリードもできない
|
||||
}
|
||||
if( DSDLPLAY_SIZE != fread( buf, 1, DSDLPLAY_SIZE, fp ) )
|
||||
{
|
||||
this->hHasDSDLPlaySign = gcnew System::Boolean( false );
|
||||
return ECSrlResult::ERROR_FILE_READ;
|
||||
}
|
||||
|
||||
// 最初の2バイトが固定の値となることが保証されているのでその値かどうかで判定
|
||||
if( (buf[0] == 'a') && (buf[1] == 'c') )
|
||||
{
|
||||
this->hHasDSDLPlaySign = gcnew System::Boolean( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
this->hHasDSDLPlaySign = gcnew System::Boolean( false );
|
||||
}
|
||||
return (ECSrlResult::NOERROR);
|
||||
}
|
||||
159
build/tools/MasterEditorTWL/MasterEditorTWL/srl.h
Normal file
159
build/tools/MasterEditorTWL/MasterEditorTWL/srl.h
Normal file
@ -0,0 +1,159 @@
|
||||
#pragma once
|
||||
|
||||
// ROMデータ(SRL)クラスと関連クラスの宣言
|
||||
|
||||
#include <twl/types.h>
|
||||
#include <twl/os/common/format_rom.h>
|
||||
#include <twl/os/common/ownerInfoEx.h>
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
// -------------------------------------------------------------------
|
||||
// Type : enum class
|
||||
// Name : ECSrlResult
|
||||
//
|
||||
// Description : RCSrlクラスの操作でのエラーを宣言
|
||||
// -------------------------------------------------------------------
|
||||
enum class ECSrlResult
|
||||
{
|
||||
NOERROR = 0,
|
||||
// エラー特定しなくても原因がわかるときの返り値
|
||||
// (エラーが生じる可能性のある箇所が1つ etc.)
|
||||
ERROR,
|
||||
// ファイル操作でのエラー
|
||||
ERROR_FILE_OPEN,
|
||||
ERROR_FILE_READ,
|
||||
ERROR_FILE_WRITE,
|
||||
// 署名でのエラー
|
||||
ERROR_SIGN_ENCRYPT,
|
||||
ERROR_SIGN_DECRYPT,
|
||||
// CRC算出でのエラー
|
||||
ERROR_SIGN_CRC,
|
||||
};
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// Type : ref class
|
||||
// Name : RCSrl
|
||||
//
|
||||
// Description : ROMデータ(SRL)の設定情報クラス
|
||||
//
|
||||
// Role : ROMデータのファイル入出力・内部情報の更新
|
||||
// -------------------------------------------------------------------
|
||||
ref class RCSrl
|
||||
{
|
||||
// field
|
||||
private:
|
||||
// ROMヘッダ
|
||||
ROM_Header *pRomHeader;
|
||||
|
||||
public:
|
||||
// (GUIに表示される)ROMヘッダ固有情報
|
||||
|
||||
// NTR互換情報 ReadOnly
|
||||
property System::String ^hTitleName;
|
||||
property System::String ^hGameCode;
|
||||
property System::String ^hMakerCode;
|
||||
property System::String ^hPlatform;
|
||||
property System::String ^hRomSize;
|
||||
//property System::Byte ^hForKorea;
|
||||
//property System::Byte ^hForChina;
|
||||
property System::Byte ^hRomVersion;
|
||||
property System::UInt16 ^hHeaderCRC;
|
||||
property System::String ^hLatency; // MROM/1TROM/Illegal
|
||||
|
||||
// ペアレンタルコントロール
|
||||
property cli::array<System::Byte^> ^hArrayParentalRating; // 各団体での制限年齢
|
||||
property cli::array<System::Boolean^> ^hArrayParentalEffect; // 制限有効フラグ
|
||||
property cli::array<System::Boolean^> ^hArrayParentalAlways; // 制限強制有効フラグ
|
||||
|
||||
// TWL専用情報 一部編集可能
|
||||
property System::UInt32 ^hNormalRomOffset;
|
||||
property System::UInt32 ^hKeyTableRomOffset;
|
||||
property System::Byte ^hEULAVersion; // 編集可能
|
||||
property System::UInt32 ^hTitleIDLo;
|
||||
property System::UInt32 ^hTitleIDHi;
|
||||
property System::Boolean ^hIsAppLauncher; // TitleIDLoからわかるアプリ種別
|
||||
property System::Boolean ^hIsAppUser; // TitleIDHiからわかるアプリ種別
|
||||
property System::Boolean ^hIsAppSystem; //
|
||||
property System::Boolean ^hIsAppSecure; //
|
||||
property System::Boolean ^hIsLaunch; //
|
||||
property System::Boolean ^hIsMediaNand; //
|
||||
property System::Boolean ^hIsDataOnly; //
|
||||
property System::UInt16 ^hPublisherCode; //
|
||||
property System::UInt32 ^hPublicSize;
|
||||
property System::UInt32 ^hPrivateSize;
|
||||
property System::Boolean ^hIsNormalJump;
|
||||
property System::Boolean ^hIsTmpJump;
|
||||
property System::Boolean ^hHasDSDLPlaySign; // ROMヘッダ外のSRLからわかる署名の有無
|
||||
|
||||
// TWL拡張フラグ 一部編集可能
|
||||
property System::Boolean ^hIsCodecTWL;
|
||||
property System::Boolean ^hIsEULA; // 編集可能
|
||||
property System::Boolean ^hIsSubBanner;
|
||||
property System::Boolean ^hIsWiFiIcon; // 編集可能
|
||||
property System::Boolean ^hIsWirelessIcon; // 編集可能
|
||||
property System::Boolean ^hIsWL;
|
||||
|
||||
// TWLアクセスコントロール Read Only
|
||||
property System::Boolean ^hIsCommonClientKey;
|
||||
property System::Boolean ^hIsAesSlotBForES;
|
||||
property System::Boolean ^hIsAesSlotCForNAM;
|
||||
property System::Boolean ^hIsSD;
|
||||
property System::Boolean ^hIsNAND;
|
||||
property System::Boolean ^hIsGameCardOn;
|
||||
property System::Boolean ^hIsShared2;
|
||||
property System::Boolean ^hIsAesSlotBForJpegEnc;
|
||||
property System::Boolean ^hIsGameCardNitro;
|
||||
property System::Boolean ^hIsAesSlotAForSSL;
|
||||
property System::Boolean ^hIsCommonClientKeyForDebugger;
|
||||
|
||||
// Shared2ファイルサイズ Read Only
|
||||
property System::UInt32 ^hShared2Size0;
|
||||
property System::UInt32 ^hShared2Size1;
|
||||
property System::UInt32 ^hShared2Size2;
|
||||
property System::UInt32 ^hShared2Size3;
|
||||
property System::UInt32 ^hShared2Size4;
|
||||
property System::UInt32 ^hShared2Size5;
|
||||
|
||||
// カードリージョン Read Only
|
||||
property System::Boolean ^hIsRegionJapan;
|
||||
property System::Boolean ^hIsRegionAmerica;
|
||||
property System::Boolean ^hIsRegionEurope;
|
||||
property System::Boolean ^hIsRegionAustralia;
|
||||
//property System::Boolean ^hRegionChina;
|
||||
//property System::Boolean ^hRegionKorea;
|
||||
|
||||
// constructor and destructor
|
||||
public:
|
||||
RCSrl();
|
||||
~RCSrl();
|
||||
|
||||
// method
|
||||
public:
|
||||
|
||||
//
|
||||
// ROMヘッダのファイル入出力
|
||||
//
|
||||
// @arg [in/out] 入出力ファイル名
|
||||
//
|
||||
ECSrlResult readFromFile ( System::String ^filename );
|
||||
ECSrlResult writeToFile( System::String ^filename );
|
||||
|
||||
// internal method
|
||||
private:
|
||||
// ROM固有情報とROMヘッダの設定
|
||||
ECSrlResult setRomInfo(void); // ROMヘッダから取得したROM固有情報をフィールドに反映させる
|
||||
ECSrlResult setRomHeader(void); // ROMヘッダにROM固有情報フィールドの値を反映させる
|
||||
|
||||
// ROMヘッダの更新
|
||||
ECSrlResult calcRomHeaderCRC(void); // ROMヘッダのCRCを再計算
|
||||
ECSrlResult signRomHeader(void); // ROMヘッダ更新後の再署名
|
||||
|
||||
// SRLバイナリから特殊な設定を調べる
|
||||
ECSrlResult hasDSDLPlaySign( FILE *fp );
|
||||
// DSダウンロード署名がSRLに格納されているか調べる
|
||||
// @arg [in] 入力ファイルのFP (->SRL読み込み時に実行されるべき)
|
||||
|
||||
}; // end of ref class RCSrl
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
7
build/tools/MasterEditorTWL/MasterEditorTWL/stdafx.cpp
Normal file
7
build/tools/MasterEditorTWL/MasterEditorTWL/stdafx.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
// stdafx.cpp : 標準インクルード MasterEditorTWL.pch のみを
|
||||
// 含むソース ファイルは、プリコンパイル済みヘッダーになります。
|
||||
// stdafx.obj にはプリコンパイル済み型情報が含まれます。
|
||||
|
||||
#include "stdafx.h"
|
||||
|
||||
|
||||
6
build/tools/MasterEditorTWL/MasterEditorTWL/stdafx.h
Normal file
6
build/tools/MasterEditorTWL/MasterEditorTWL/stdafx.h
Normal file
@ -0,0 +1,6 @@
|
||||
// stdafx.h : 標準のシステム インクルード ファイルのインクルード ファイル、または
|
||||
// 参照回数が多く、かつあまり変更されない、プロジェクト専用のインクルード ファイル
|
||||
// を記述します。
|
||||
#pragma once
|
||||
|
||||
// TODO: プログラムに必要な追加ヘッダーをここで参照してください。
|
||||
282
build/tools/MasterEditorTWL/MasterEditorTWL/utility.cpp
Normal file
282
build/tools/MasterEditorTWL/MasterEditorTWL/utility.cpp
Normal file
@ -0,0 +1,282 @@
|
||||
// utility.h の実装
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "utility.h"
|
||||
#include <cstring>
|
||||
#include <cstdio>
|
||||
#include <twl/types.h>
|
||||
#include <twl/os/common/format_rom.h>
|
||||
#include <twl/os/common/ownerInfoEx.h>
|
||||
|
||||
//
|
||||
// String を char 配列に格納
|
||||
//
|
||||
// @arg [out] 格納先
|
||||
// @arg [in] 格納元
|
||||
// @arg [in] 文字列長
|
||||
// @arg [in] 余りを埋める padding
|
||||
//
|
||||
void MasterEditorTWL::setStringToChars( char *pDst, System::String ^hSrc,
|
||||
const System::Int32 nMax, const System::SByte pad )
|
||||
{
|
||||
System::Int32 i;
|
||||
|
||||
memset( pDst, pad, nMax );
|
||||
for( i=0; (i < hSrc->Length) && (i < nMax); i++ )
|
||||
{
|
||||
pDst[i] = (char)hSrc[i];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// ROMヘッダ中のROM容量設定バイトからROM容量を表す文字列を取得
|
||||
//
|
||||
// @arg [in] ROM容量設定バイト
|
||||
//
|
||||
// @ret 文字列(単位つき)
|
||||
//
|
||||
System::String^ MasterEditorTWL::transRomSizeToString( System::Byte ^byte )
|
||||
{
|
||||
System::UInt32 size;
|
||||
System::String ^unit;
|
||||
|
||||
// RomSize = 2^(byte) [Mbit]
|
||||
size = 1 << *(byte);
|
||||
|
||||
if(size >= 1024)
|
||||
{
|
||||
unit = gcnew System::String("Gbit");
|
||||
size = size / 1024;
|
||||
}
|
||||
else
|
||||
{
|
||||
unit = gcnew System::String("Mbit");
|
||||
}
|
||||
return (size.ToString() + unit);
|
||||
}
|
||||
|
||||
//
|
||||
// ペアレンタルコントロールのレーティング値から文字列を取得
|
||||
//
|
||||
// @arg [in] 団体
|
||||
// @arg [in] 有効フラグ(0歳以上か未審査かを判定するために使用する)
|
||||
// @arg [in] レーティング値
|
||||
// @arg [in] 英語フラグ
|
||||
//
|
||||
// @ret レーティングの文字列(団体がおかしいときnullptr)
|
||||
//
|
||||
System::String^ MasterEditorTWL::transRatingToString( System::Byte ogn, System::Boolean enable, System::Byte rating, System::Boolean english )
|
||||
{
|
||||
cli::array< System::String^ > ^list;
|
||||
System::Int32 index;
|
||||
System::String ^str;
|
||||
|
||||
if( ogn == OS_TWL_PCTL_OGN_CERO )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{ L"A (All ages)", L"B (aged 12 or older)", L"C (aged 15 or older)",
|
||||
L"D (aged 17 or older)", L"Z (aged 18 or older)", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"A (全年齢)", L"B (12歳以上)", L"C (15歳以上)", L"D (17歳以上)", L"Z (18歳以上)", L"未審査"};
|
||||
}
|
||||
|
||||
switch( rating )
|
||||
{
|
||||
case 0:
|
||||
if( enable ) // 全年齢か未審査か判定
|
||||
index = 0;
|
||||
else
|
||||
index = 5;
|
||||
break;
|
||||
case 12: index = 1; break;
|
||||
case 15: index = 2; break;
|
||||
case 17: index = 3; break;
|
||||
case 18: index = 4; break;
|
||||
default:
|
||||
index = 5;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else if( ogn == OS_TWL_PCTL_OGN_ESRB )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"EC (aged 3 or older)", L"E (aged 6 or older)", L"E10+ (aged 10 or older)",
|
||||
L"T (aged 13 or older)", L"M (aged 17 or older)", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"EC (3歳以上)", L"E (6歳以上)", L"E10+ (10歳以上)", L"T (13歳以上)", L"M (17歳以上)", L"未審査"};
|
||||
}
|
||||
|
||||
switch( rating )
|
||||
{
|
||||
case 3: index = 0; break;
|
||||
case 6: index = 1; break;
|
||||
case 10: index = 2; break;
|
||||
case 13: index = 3; break;
|
||||
case 17: index = 4; break;
|
||||
case 0: index = 5; break; // 0はデフォルト値なのでエラーメッセージを出さない(自動的に未審査扱い)
|
||||
default:
|
||||
index = 5;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else if( ogn == OS_TWL_PCTL_OGN_USK )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"All ages", L"aged 6 or older", L"aged 12 or older", L"aged 16 or older",
|
||||
L"Inadequent for young", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"年齢制限なし", L"6歳以上", L"12歳以上", L"16歳以上", L"青少年には不適切", L"未審査"};
|
||||
}
|
||||
|
||||
switch( rating )
|
||||
{
|
||||
case 0:
|
||||
if( enable )
|
||||
index = 0;
|
||||
else
|
||||
index = 5;
|
||||
break;
|
||||
case 6: index = 1; break;
|
||||
case 12: index = 2; break;
|
||||
case 16: index = 3; break;
|
||||
case 18: index = 4; break;
|
||||
default:
|
||||
index = 5;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else if( ogn == OS_TWL_PCTL_OGN_PEGI_GEN )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"aged 3 or older", L"aged 7 or older", L"aged 12 or older", L"aged 16 or older",
|
||||
L"aged 18 or older", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"3歳以上", L"7歳以上", L"12歳以上", L"16歳以上", L"18歳以上", L"未審査"};
|
||||
}
|
||||
|
||||
switch( rating )
|
||||
{
|
||||
case 3: index = 0; break;
|
||||
case 7: index = 1; break;
|
||||
case 12: index = 2; break;
|
||||
case 16: index = 3; break;
|
||||
case 18: index = 4; break;
|
||||
case 0: index = 5; break;
|
||||
default:
|
||||
index = 5;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else if( ogn == OS_TWL_PCTL_OGN_PEGI_PRT )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"aged 4 or older", L"aged 6 or older", L"aged 12 or older", L"aged 16 or older",
|
||||
L"aged 18 or older", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"4歳以上", L"6歳以上", L"12歳以上", L"16歳以上", L"18歳以上", L"未審査"};
|
||||
}
|
||||
|
||||
switch( rating )
|
||||
{
|
||||
case 4: index = 0; break;
|
||||
case 6: index = 1; break;
|
||||
case 12: index = 2; break;
|
||||
case 16: index = 3; break;
|
||||
case 18: index = 4; break;
|
||||
case 0: index = 5; break;
|
||||
default:
|
||||
index = 5;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else if( ogn == OS_TWL_PCTL_OGN_PEGI_BBFC )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"aged 3 or older", L"aged 4 or older recommended", L"aged 7 or older", L"aged 8 or older recommended",
|
||||
L"aged 12 or older", L"aged 15 or older", L"aged 16 or older", L"aged 18 or older", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"3歳以上", L"4歳以上推奨", L"7歳以上", L"8歳以上推奨",
|
||||
L"12歳以上", L"15歳以上", L"16歳以上", L"18歳以上", L"未審査"};
|
||||
}
|
||||
switch( rating )
|
||||
{
|
||||
case 3: index = 0; break;
|
||||
case 4: index = 1; break;
|
||||
case 7: index = 2; break;
|
||||
case 8: index = 3; break;
|
||||
case 12: index = 4; break;
|
||||
case 15: index = 5; break;
|
||||
case 16: index = 6; break;
|
||||
case 18: index = 7; break;
|
||||
case 0: index = 8; break;
|
||||
default:
|
||||
index = 8;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else if( ogn == OS_TWL_PCTL_OGN_OFLC )
|
||||
{
|
||||
if( english )
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"G", L"PG", L"M", L"MA15+", L"Unexamined"};
|
||||
}
|
||||
else
|
||||
{
|
||||
list = gcnew cli::array< System::String^ >{L"G", L"PG", L"M", L"MA15+", L"未審査"};
|
||||
}
|
||||
|
||||
switch( rating )
|
||||
{
|
||||
case 0:
|
||||
if( enable )
|
||||
index = 0;
|
||||
else
|
||||
index = 4;
|
||||
break;
|
||||
case 7: index = 1; break;
|
||||
case 14: index = 2; break;
|
||||
case 15: index = 3; break;
|
||||
default:
|
||||
index = 4; break;
|
||||
break;
|
||||
}
|
||||
str = list[ index ];
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
str = nullptr;
|
||||
}
|
||||
|
||||
return str;
|
||||
}
|
||||
45
build/tools/MasterEditorTWL/MasterEditorTWL/utility.h
Normal file
45
build/tools/MasterEditorTWL/MasterEditorTWL/utility.h
Normal file
@ -0,0 +1,45 @@
|
||||
#pragma once
|
||||
|
||||
// 共用ライブラリ・クラスの宣言
|
||||
|
||||
#include <twl/types.h>
|
||||
|
||||
namespace MasterEditorTWL
|
||||
{
|
||||
|
||||
// -------------------------------------------------------------------
|
||||
// functions
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
//
|
||||
// String を char 配列に格納
|
||||
//
|
||||
// @arg [out] 格納先
|
||||
// @arg [in] 格納元
|
||||
// @arg [in] 文字列長
|
||||
// @arg [in] 余りを埋める padding
|
||||
//
|
||||
void setStringToChars( char *pDst, System::String ^hSrc, const System::Int32 nMax, const System::SByte pad );
|
||||
|
||||
//
|
||||
// ROMヘッダ中のROM容量設定バイトからROM容量を表す文字列を取得
|
||||
//
|
||||
// @arg [in] ROM容量設定バイト
|
||||
//
|
||||
// @ret 文字列(単位つき)
|
||||
//
|
||||
System::String^ transRomSizeToString( System::Byte ^byte );
|
||||
|
||||
//
|
||||
// ペアレンタルコントロールのレーティング値から文字列を取得
|
||||
//
|
||||
// @arg [in] 団体
|
||||
// @arg [in] 有効フラグ(0歳以上か未審査かを判定するために使用する)
|
||||
// @arg [in] レーティング値
|
||||
// @arg [in] 英語フラグ
|
||||
//
|
||||
// @ret レーティングの文字列(団体がおかしいときnullptr)
|
||||
//
|
||||
System::String^ transRatingToString( System::Byte ogn, System::Boolean enable, System::Byte rating, System::Boolean english );
|
||||
|
||||
} // end of namespace MasterEditorTWL
|
||||
@ -0,0 +1,820 @@
|
||||
"DeployProject"
|
||||
{
|
||||
"VSVersion" = "3:800"
|
||||
"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
|
||||
"IsWebType" = "8:FALSE"
|
||||
"ProjectName" = "8:MasterEditorTWLSetup"
|
||||
"LanguageId" = "3:1041"
|
||||
"CodePage" = "3:932"
|
||||
"UILanguageId" = "3:1041"
|
||||
"SccProjectName" = "8:"
|
||||
"SccLocalPath" = "8:"
|
||||
"SccAuxPath" = "8:"
|
||||
"SccProvider" = "8:"
|
||||
"Hierarchy"
|
||||
{
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_23206E985D4D45889DEAA959C37C4BC9"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_7746D2D347F0423FB46FA2300F6158A4"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_A3417E9C9F294832AE49B5BDAF95E373"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
}
|
||||
"Configurations"
|
||||
{
|
||||
"Debug"
|
||||
{
|
||||
"DisplayName" = "8:Debug"
|
||||
"IsDebugOnly" = "11:TRUE"
|
||||
"IsReleaseOnly" = "11:FALSE"
|
||||
"OutputFilename" = "8:Debug\\MasterEditorTWLSetup.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||
{
|
||||
"Enabled" = "11:TRUE"
|
||||
"PromptEnabled" = "11:TRUE"
|
||||
"PrerequisitesLocation" = "2:1"
|
||||
"Url" = "8:"
|
||||
"ComponentsUrl" = "8:"
|
||||
"Items"
|
||||
{
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5"
|
||||
{
|
||||
"Name" = "8:.NET Framework 3.5"
|
||||
"ProductCode" = "8:Microsoft.Net.Framework.3.5"
|
||||
}
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
|
||||
{
|
||||
"Name" = "8:Windows Installer 3.1"
|
||||
"ProductCode" = "8:Microsoft.Windows.Installer.3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"Release"
|
||||
{
|
||||
"DisplayName" = "8:Release"
|
||||
"IsDebugOnly" = "11:FALSE"
|
||||
"IsReleaseOnly" = "11:TRUE"
|
||||
"OutputFilename" = "8:Release\\MasterEditorTWLSetup.msi"
|
||||
"PackageFilesAs" = "3:2"
|
||||
"PackageFileSize" = "3:-2147483648"
|
||||
"CabType" = "3:1"
|
||||
"Compression" = "3:2"
|
||||
"SignOutput" = "11:FALSE"
|
||||
"CertificateFile" = "8:"
|
||||
"PrivateKeyFile" = "8:"
|
||||
"TimeStampServer" = "8:"
|
||||
"InstallerBootstrapper" = "3:2"
|
||||
"BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
|
||||
{
|
||||
"Enabled" = "11:TRUE"
|
||||
"PromptEnabled" = "11:TRUE"
|
||||
"PrerequisitesLocation" = "2:1"
|
||||
"Url" = "8:"
|
||||
"ComponentsUrl" = "8:"
|
||||
"Items"
|
||||
{
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5"
|
||||
{
|
||||
"Name" = "8:.NET Framework 3.5"
|
||||
"ProductCode" = "8:Microsoft.Net.Framework.3.5"
|
||||
}
|
||||
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
|
||||
{
|
||||
"Name" = "8:Windows Installer 3.1"
|
||||
"ProductCode" = "8:Microsoft.Windows.Installer.3.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"Deployable"
|
||||
{
|
||||
"CustomAction"
|
||||
{
|
||||
}
|
||||
"DefaultFeature"
|
||||
{
|
||||
"Name" = "8:DefaultFeature"
|
||||
"Title" = "8:"
|
||||
"Description" = "8:"
|
||||
}
|
||||
"ExternalPersistence"
|
||||
{
|
||||
"LaunchCondition"
|
||||
{
|
||||
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_6924DDEBAA3847838D980F2E7456B5FF"
|
||||
{
|
||||
"Name" = "8:.NET Framework"
|
||||
"Message" = "8:[VSDNETMSG]"
|
||||
"Version" = "8:3.5.21022"
|
||||
"AllowLaterVersions" = "11:FALSE"
|
||||
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
|
||||
}
|
||||
}
|
||||
}
|
||||
"File"
|
||||
{
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_23206E985D4D45889DEAA959C37C4BC9"
|
||||
{
|
||||
"SourcePath" = "8:..\\resource\\sheet_templete.xml"
|
||||
"TargetName" = "8:sheet_templete.xml"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A3417E9C9F294832AE49B5BDAF95E373"
|
||||
{
|
||||
"SourcePath" = "8:..\\resource\\ini.xml"
|
||||
"TargetName" = "8:ini.xml"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_99EFE6B595C5432FB4712560C9D29AE5"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
}
|
||||
"FileType"
|
||||
{
|
||||
}
|
||||
"Folder"
|
||||
{
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_511CA14EE892474E9A4F78537CA4FD5F"
|
||||
{
|
||||
"Name" = "8:#1916"
|
||||
"AlwaysCreate" = "11:TRUE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:DesktopFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{3C67513D-01DD-4637-8A68-80971EB9504F}:_DB36135A1FB84606BA18105F8B898FB2"
|
||||
{
|
||||
"DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]"
|
||||
"Name" = "8:#1925"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:TARGETDIR"
|
||||
"Folders"
|
||||
{
|
||||
"{9EF0B969-E518-4E46-987F-47570745A589}:_1494B8B199184797B9C812877A4DFB7F"
|
||||
{
|
||||
"Name" = "8:bin"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:_B23854B2049F4A97BCD9477AFCDBE7EB"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
"{9EF0B969-E518-4E46-987F-47570745A589}:_99EFE6B595C5432FB4712560C9D29AE5"
|
||||
{
|
||||
"Name" = "8:resource"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:_640331DE98B247AD89E624136F7BF429"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{1525181F-901A-416C-8A58-119130FE478E}:_F871EA43D66E4C2C868D277F17AE8F52"
|
||||
{
|
||||
"Name" = "8:#1919"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Property" = "8:ProgramMenuFolder"
|
||||
"Folders"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"LaunchCondition"
|
||||
{
|
||||
}
|
||||
"Locator"
|
||||
{
|
||||
}
|
||||
"MsiBootstrapper"
|
||||
{
|
||||
"LangId" = "3:1041"
|
||||
"RequiresElevation" = "11:FALSE"
|
||||
}
|
||||
"Product"
|
||||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:MasterEditorTWL"
|
||||
"ProductCode" = "8:{B12B5AFF-26D1-47B5-85B6-1E2A7B5106F5}"
|
||||
"PackageCode" = "8:{2C68262E-3FD3-4145-BBE0-34E59802EF7F}"
|
||||
"UpgradeCode" = "8:{CE22C209-7AE1-4F58-8F6B-6D044BA2A118}"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:FALSE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:1.0.0"
|
||||
"Manufacturer" = "8:nintendo"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:"
|
||||
"Title" = "8:MasterEditorTWLSetup"
|
||||
"Subject" = "8:"
|
||||
"ARPCONTACT" = "8:nintendo"
|
||||
"Keywords" = "8:"
|
||||
"ARPCOMMENTS" = "8:"
|
||||
"ARPURLINFOABOUT" = "8:"
|
||||
"ARPPRODUCTICON" = "8:"
|
||||
"ARPIconIndex" = "3:0"
|
||||
"SearchPath" = "8:"
|
||||
"UseSystemSearchPath" = "11:TRUE"
|
||||
"TargetPlatform" = "3:0"
|
||||
"PreBuildEvent" = "8:"
|
||||
"PostBuildEvent" = "8:"
|
||||
"RunPostBuildEvent" = "3:0"
|
||||
}
|
||||
"Registry"
|
||||
{
|
||||
"HKLM"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_DE3525327D5741C8B8F00223FB033E80"
|
||||
{
|
||||
"Name" = "8:Software"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_064E90E490674DEEA974094B5467A386"
|
||||
{
|
||||
"Name" = "8:[Manufacturer]"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"HKCU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_E41443B9DF754797AA265044ED843A52"
|
||||
{
|
||||
"Name" = "8:Software"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
"{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_2BC1D936E6DC45A7A1BD166F48CE31C3"
|
||||
{
|
||||
"Name" = "8:[Manufacturer]"
|
||||
"Condition" = "8:"
|
||||
"AlwaysCreate" = "11:FALSE"
|
||||
"DeleteAtUninstall" = "11:FALSE"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Values"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"HKCR"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
"HKPU"
|
||||
{
|
||||
"Keys"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
"Sequences"
|
||||
{
|
||||
}
|
||||
"Shortcut"
|
||||
{
|
||||
"{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_1E9C816FBE5C44DC8A2649DF40760892"
|
||||
{
|
||||
"Name" = "8:MasterEditorTWL"
|
||||
"Arguments" = "8:"
|
||||
"Description" = "8:"
|
||||
"ShowCmd" = "3:1"
|
||||
"IconIndex" = "3:0"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Target" = "8:_7746D2D347F0423FB46FA2300F6158A4"
|
||||
"Folder" = "8:_511CA14EE892474E9A4F78537CA4FD5F"
|
||||
"WorkingFolder" = "8:_1494B8B199184797B9C812877A4DFB7F"
|
||||
"Icon" = "8:"
|
||||
"Feature" = "8:"
|
||||
}
|
||||
}
|
||||
"UserInterface"
|
||||
{
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_4CCE54AD98074A3BBD623BDEC20B9752"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_75F92E28CF004D259861A9FED348A478"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_03D0563E96ED4290A1F39B1089754E46"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:インストール フォルダ"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"InstallAllUsersVisible"
|
||||
{
|
||||
"Name" = "8:InstallAllUsersVisible"
|
||||
"DisplayName" = "8:#1059"
|
||||
"Description" = "8:#1159"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_15934606B52D491287A665833C86963C"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:ようこそ"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1202"
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C16356A19FD541E68225C5E34F2ACBD1"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:インストールの確認"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_84553AE7657346C0BEFFACC6DEE8BA3E"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_46AE50DF1B9A458FA932AB9BDEB8C097"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:進行状況"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_856D1D3282D44811B9EEF57A521CB8A0"
|
||||
{
|
||||
"Name" = "8:#1900"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:1"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_0E61C8F6C89747558C33BD69BACE7158"
|
||||
{
|
||||
"Sequence" = "3:300"
|
||||
"DisplayName" = "8:インストールの確認"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_43EBFD558AA44619A26A25D5AE33C315"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:ようこそ"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"CopyrightWarning"
|
||||
{
|
||||
"Name" = "8:CopyrightWarning"
|
||||
"DisplayName" = "8:#1002"
|
||||
"Description" = "8:#1102"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1202"
|
||||
"DefaultValue" = "8:#1202"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"Welcome"
|
||||
{
|
||||
"Name" = "8:Welcome"
|
||||
"DisplayName" = "8:#1003"
|
||||
"Description" = "8:#1103"
|
||||
"Type" = "3:3"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1203"
|
||||
"DefaultValue" = "8:#1203"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_D4B799BD07FD4AE5890E6319153B8CCF"
|
||||
{
|
||||
"Sequence" = "3:200"
|
||||
"DisplayName" = "8:インストール フォルダ"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_95CC2394B4924E52BEF9CC6A51AA8BBF"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_F7EC3CF49FA04B88A1CBE0B6963F0875"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:完了"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"UpdateText"
|
||||
{
|
||||
"Name" = "8:UpdateText"
|
||||
"DisplayName" = "8:#1058"
|
||||
"Description" = "8:#1158"
|
||||
"Type" = "3:15"
|
||||
"ContextData" = "8:"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:1"
|
||||
"Value" = "8:#1258"
|
||||
"DefaultValue" = "8:#1258"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A8FC0955E1E54111A186CB9467EF1132"
|
||||
{
|
||||
"Name" = "8:#1902"
|
||||
"Sequence" = "3:2"
|
||||
"Attributes" = "3:3"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_28866486C3004ECAAF88E207A435EF0D"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:完了"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{DF760B10-853B-4699-99F2-AFF7185B4A62}:_DAB148986A654428A42E413FD4B68E8F"
|
||||
{
|
||||
"Name" = "8:#1901"
|
||||
"Sequence" = "3:1"
|
||||
"Attributes" = "3:2"
|
||||
"Dialogs"
|
||||
{
|
||||
"{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_61716D98ACBB4CBCB78E425A1C6A4E53"
|
||||
{
|
||||
"Sequence" = "3:100"
|
||||
"DisplayName" = "8:進行状況"
|
||||
"UseDynamicProperties" = "11:TRUE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
|
||||
"Properties"
|
||||
{
|
||||
"BannerBitmap"
|
||||
{
|
||||
"Name" = "8:BannerBitmap"
|
||||
"DisplayName" = "8:#1001"
|
||||
"Description" = "8:#1101"
|
||||
"Type" = "3:8"
|
||||
"ContextData" = "8:Bitmap"
|
||||
"Attributes" = "3:4"
|
||||
"Setting" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
"ShowProgress"
|
||||
{
|
||||
"Name" = "8:ShowProgress"
|
||||
"DisplayName" = "8:#1009"
|
||||
"Description" = "8:#1109"
|
||||
"Type" = "3:5"
|
||||
"ContextData" = "8:1;True=1;False=0"
|
||||
"Attributes" = "3:0"
|
||||
"Setting" = "3:0"
|
||||
"Value" = "3:1"
|
||||
"DefaultValue" = "3:1"
|
||||
"UsePlugInResources" = "11:TRUE"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
"{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_E0E8980863E24B64A2A4D12136B5027B"
|
||||
{
|
||||
"UseDynamicProperties" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
|
||||
}
|
||||
}
|
||||
"MergeModule"
|
||||
{
|
||||
}
|
||||
"ProjectOutput"
|
||||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_7746D2D347F0423FB46FA2300F6158A4"
|
||||
{
|
||||
"SourcePath" = "8:..\\Release\\MasterEditorTWL.exe"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_1494B8B199184797B9C812877A4DFB7F"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
"ProjectOutputGroupRegister" = "3:1"
|
||||
"OutputConfiguration" = "8:"
|
||||
"OutputGroupCanonicalName" = "8:Built"
|
||||
"OutputProjectGuid" = "8:{F8A4F8F7-A3BD-4DCA-B054-5FF8A09082F5}"
|
||||
"ShowKeyOutput" = "11:TRUE"
|
||||
"ExcludeFilters"
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
73
build/tools/MasterEditorTWL/flags/Makefile
Normal file
73
build/tools/MasterEditorTWL/flags/Makefile
Normal file
@ -0,0 +1,73 @@
|
||||
#! make -f
|
||||
#---------------------------------------------------------------------------
|
||||
# Project: TwlSDK - tools - makerom.TWL
|
||||
# File: Makefile
|
||||
#
|
||||
# Copyright 2007 Nintendo. All rights reserved.
|
||||
#
|
||||
# These coded instructions, statements, and computer programs contain
|
||||
# proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
# Company Ltd., and are protected by Federal copyright law. They may
|
||||
# not be disclosed to third parties or copied or duplicated in any form,
|
||||
# in whole or in part, without the prior written consent of Nintendo.
|
||||
#
|
||||
# $Date:: $
|
||||
# $Rev$
|
||||
# $Author$
|
||||
#---------------------------------------------------------------------------
|
||||
TARGET_PLATFORM = TWL
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
SUBDIRS =
|
||||
|
||||
include $(TWLSDK_ROOT)/build/buildtools/commondefs
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
TARGET_LIB = libflags_x86.a
|
||||
TARGETS = $(LIBDIR)/$(TARGET_LIB)
|
||||
|
||||
SRCS = flags.c
|
||||
|
||||
INCDIR = include \
|
||||
../
|
||||
|
||||
OBJDIR = obj/X86
|
||||
LIBDIR = lib/X86
|
||||
|
||||
MACROS += $(addprefix -I,$(INCDIR)) \
|
||||
-DSTANDALONE \
|
||||
-DOPT_32_BIT \
|
||||
-DNO_SPLIT \
|
||||
-DNO_FP_API \
|
||||
-DNO_R_DIAG \
|
||||
-DNO_STDIO_H \
|
||||
-DNO_STDLIB_H
|
||||
|
||||
VPATH = $(SRCDIR) $(INCDIR)
|
||||
OBJS = $(addprefix $(OBJDIR)/,$(SRCS:.c=.o))
|
||||
|
||||
#INSTALL_TARGETS = $(TARGETS)
|
||||
#INSTALL_DIR = .
|
||||
|
||||
NEWDIRS = $(OBJDIR) $(LIBDIR)
|
||||
LDIRT_CLEAN = $(OBJDIR) $(LIBDIR)
|
||||
|
||||
include $(TWLSDK_ROOT)/build/buildtools/modulerules.x86
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# build
|
||||
#----------------------------------------------------------------------------
|
||||
do-build: $(TARGETS)
|
||||
|
||||
$(TARGETS): $(OBJS)
|
||||
$(AR_X86) $@ $(OBJS)
|
||||
|
||||
$(OBJS):%.o:
|
||||
$(COMPILE_C)
|
||||
|
||||
$(OBJDIR)/flags.o: flags.c
|
||||
|
||||
|
||||
#===== End of Makefile =====
|
||||
21
build/tools/MasterEditorTWL/flags/flags.c
Normal file
21
build/tools/MasterEditorTWL/flags/flags.c
Normal file
@ -0,0 +1,21 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - tools - makerom.TWL
|
||||
File: acsign.c
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
#include "types.h"
|
||||
|
||||
BOOL DebugMode = TRUE;
|
||||
|
||||
|
||||
35
build/tools/MasterEditorTWL/flags/include/types.h
Normal file
35
build/tools/MasterEditorTWL/flags/include/types.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*---------------------------------------------------------------------------*
|
||||
Project: TwlSDK - tools - makerom.TWL
|
||||
File: types.h
|
||||
|
||||
Copyright 2007 Nintendo. All rights reserved.
|
||||
|
||||
These coded instructions, statements, and computer programs contain
|
||||
proprietary information of Nintendo of America Inc. and/or Nintendo
|
||||
Company Ltd., and are protected by Federal copyright law. They may
|
||||
not be disclosed to third parties or copied or duplicated in any form,
|
||||
in whole or in part, without the prior written consent of Nintendo.
|
||||
|
||||
$Date:: $
|
||||
$Rev$
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef TYPES_H_
|
||||
#define TYPES_H_
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FALSE = 0,
|
||||
TRUE = 1
|
||||
}
|
||||
BOOL;
|
||||
|
||||
typedef unsigned char u8;
|
||||
typedef unsigned short int u16;
|
||||
typedef unsigned long int u32;
|
||||
typedef signed char s8;
|
||||
typedef signed short int s16;
|
||||
typedef signed long int s32;
|
||||
|
||||
#endif //TYPES_H_
|
||||
BIN
build/tools/MasterEditorTWL/flags/lib/X86/libflags_x86.a
Normal file
BIN
build/tools/MasterEditorTWL/flags/lib/X86/libflags_x86.a
Normal file
Binary file not shown.
6
build/tools/MasterEditorTWL/resource/ini.xml
Normal file
6
build/tools/MasterEditorTWL/resource/ini.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<init>
|
||||
<rw>w</rw>
|
||||
<output>Sheet</output>
|
||||
<sdk>RC</sdk>
|
||||
</init>
|
||||
11681
build/tools/MasterEditorTWL/resource/sheet_templete.xml
Normal file
11681
build/tools/MasterEditorTWL/resource/sheet_templete.xml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/マスタエディタ/ROMヘッダ変更箇所.xls
Normal file
BIN
docs/マスタエディタ/ROMヘッダ変更箇所.xls
Normal file
Binary file not shown.
BIN
docs/マスタエディタ/クラス図.jude
Normal file
BIN
docs/マスタエディタ/クラス図.jude
Normal file
Binary file not shown.
BIN
docs/マスタエディタ/マスタエディタSRLチェック項目.xls
Normal file
BIN
docs/マスタエディタ/マスタエディタSRLチェック項目.xls
Normal file
Binary file not shown.
BIN
docs/マスタエディタ/マスタエディタ簡易仕様書.ppt
Normal file
BIN
docs/マスタエディタ/マスタエディタ簡易仕様書.ppt
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user