mirror of
https://github.com/RenegadeRaven/PKMG5DC.git
synced 2026-04-25 15:26:50 -05:00
Initial
This commit is contained in:
parent
b3ad65bdae
commit
4e4ee9b432
25
Gen5 Distribution Creator.sln
Normal file
25
Gen5 Distribution Creator.sln
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.28010.2041
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Gen5 Distribution Creator", "Gen5 Distribution Creator\Gen5 Distribution Creator.vbproj", "{82FE1063-3E51-4717-BA32-AEB77F873E0A}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{82FE1063-3E51-4717-BA32-AEB77F873E0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{82FE1063-3E51-4717-BA32-AEB77F873E0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{82FE1063-3E51-4717-BA32-AEB77F873E0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{82FE1063-3E51-4717-BA32-AEB77F873E0A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {8ECA4BF2-BFB2-4F89-AA9F-57FF9BD2B71C}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
18
Gen5 Distribution Creator/App.config
Normal file
18
Gen5 Distribution Creator/App.config
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<configSections>
|
||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||
<section name="Gen5_Distribution_Creator.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||
</sectionGroup>
|
||||
</configSections>
|
||||
<startup>
|
||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
||||
</startup>
|
||||
<userSettings>
|
||||
<Gen5_Distribution_Creator.My.MySettings>
|
||||
<setting name="ticket" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
</Gen5_Distribution_Creator.My.MySettings>
|
||||
</userSettings>
|
||||
</configuration>
|
||||
469
Gen5 Distribution Creator/Form1.Designer.vb
generated
Normal file
469
Gen5 Distribution Creator/Form1.Designer.vb
generated
Normal file
|
|
@ -0,0 +1,469 @@
|
|||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Form1
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
|
||||
Me.RichTextBox1 = New System.Windows.Forms.RichTextBox()
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.OpenFileDialog1 = New System.Windows.Forms.OpenFileDialog()
|
||||
Me.GroupBox1 = New System.Windows.Forms.GroupBox()
|
||||
Me.CheckBox4 = New System.Windows.Forms.CheckBox()
|
||||
Me.CheckBox3 = New System.Windows.Forms.CheckBox()
|
||||
Me.CheckBox2 = New System.Windows.Forms.CheckBox()
|
||||
Me.CheckBox1 = New System.Windows.Forms.CheckBox()
|
||||
Me.RichTextBox2 = New System.Windows.Forms.RichTextBox()
|
||||
Me.GroupBox2 = New System.Windows.Forms.GroupBox()
|
||||
Me.CheckBox5 = New System.Windows.Forms.CheckBox()
|
||||
Me.Label4 = New System.Windows.Forms.Label()
|
||||
Me.Label3 = New System.Windows.Forms.Label()
|
||||
Me.DateTimePicker2 = New System.Windows.Forms.DateTimePicker()
|
||||
Me.DateTimePicker1 = New System.Windows.Forms.DateTimePicker()
|
||||
Me.GroupBox3 = New System.Windows.Forms.GroupBox()
|
||||
Me.RadioButton7 = New System.Windows.Forms.RadioButton()
|
||||
Me.RadioButton6 = New System.Windows.Forms.RadioButton()
|
||||
Me.RadioButton5 = New System.Windows.Forms.RadioButton()
|
||||
Me.RadioButton4 = New System.Windows.Forms.RadioButton()
|
||||
Me.RadioButton3 = New System.Windows.Forms.RadioButton()
|
||||
Me.RadioButton2 = New System.Windows.Forms.RadioButton()
|
||||
Me.RadioButton1 = New System.Windows.Forms.RadioButton()
|
||||
Me.Button2 = New System.Windows.Forms.Button()
|
||||
Me.Button3 = New System.Windows.Forms.Button()
|
||||
Me.Label5 = New System.Windows.Forms.Label()
|
||||
Me.Button4 = New System.Windows.Forms.Button()
|
||||
Me.TextBox1 = New System.Windows.Forms.TextBox()
|
||||
Me.Label6 = New System.Windows.Forms.Label()
|
||||
Me.Label7 = New System.Windows.Forms.Label()
|
||||
Me.Button5 = New System.Windows.Forms.Button()
|
||||
Me.GroupBox1.SuspendLayout()
|
||||
Me.GroupBox2.SuspendLayout()
|
||||
Me.GroupBox3.SuspendLayout()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'RichTextBox1
|
||||
'
|
||||
Me.RichTextBox1.Location = New System.Drawing.Point(466, 26)
|
||||
Me.RichTextBox1.Name = "RichTextBox1"
|
||||
Me.RichTextBox1.ReadOnly = True
|
||||
Me.RichTextBox1.Size = New System.Drawing.Size(357, 412)
|
||||
Me.RichTextBox1.TabIndex = 0
|
||||
Me.RichTextBox1.Text = ""
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.AutoSize = True
|
||||
Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.Label1.Location = New System.Drawing.Point(475, 6)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(51, 17)
|
||||
Me.Label1.TabIndex = 1
|
||||
Me.Label1.Text = "Label1"
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.Location = New System.Drawing.Point(345, 24)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(75, 23)
|
||||
Me.Button1.TabIndex = 2
|
||||
Me.Button1.Text = "Open .pgf"
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label2
|
||||
'
|
||||
Me.Label2.AutoEllipsis = True
|
||||
Me.Label2.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D
|
||||
Me.Label2.Location = New System.Drawing.Point(13, 28)
|
||||
Me.Label2.Margin = New System.Windows.Forms.Padding(3, 3, 3, 0)
|
||||
Me.Label2.Name = "Label2"
|
||||
Me.Label2.Size = New System.Drawing.Size(330, 17)
|
||||
Me.Label2.TabIndex = 3
|
||||
Me.Label2.Text = "Open .pgf ------->"
|
||||
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||
'
|
||||
'OpenFileDialog1
|
||||
'
|
||||
Me.OpenFileDialog1.FileName = "OpenFileDialog1"
|
||||
'
|
||||
'GroupBox1
|
||||
'
|
||||
Me.GroupBox1.Controls.Add(Me.CheckBox4)
|
||||
Me.GroupBox1.Controls.Add(Me.CheckBox3)
|
||||
Me.GroupBox1.Controls.Add(Me.CheckBox2)
|
||||
Me.GroupBox1.Controls.Add(Me.CheckBox1)
|
||||
Me.GroupBox1.Location = New System.Drawing.Point(13, 62)
|
||||
Me.GroupBox1.Name = "GroupBox1"
|
||||
Me.GroupBox1.Size = New System.Drawing.Size(175, 114)
|
||||
Me.GroupBox1.TabIndex = 4
|
||||
Me.GroupBox1.TabStop = False
|
||||
Me.GroupBox1.Text = "Game Compatability"
|
||||
'
|
||||
'CheckBox4
|
||||
'
|
||||
Me.CheckBox4.AutoSize = True
|
||||
Me.CheckBox4.Location = New System.Drawing.Point(98, 73)
|
||||
Me.CheckBox4.Name = "CheckBox4"
|
||||
Me.CheckBox4.Size = New System.Drawing.Size(63, 17)
|
||||
Me.CheckBox4.TabIndex = 3
|
||||
Me.CheckBox4.Text = "White 2"
|
||||
Me.CheckBox4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'CheckBox3
|
||||
'
|
||||
Me.CheckBox3.AutoSize = True
|
||||
Me.CheckBox3.Location = New System.Drawing.Point(21, 73)
|
||||
Me.CheckBox3.Name = "CheckBox3"
|
||||
Me.CheckBox3.Size = New System.Drawing.Size(62, 17)
|
||||
Me.CheckBox3.TabIndex = 2
|
||||
Me.CheckBox3.Text = "Black 2"
|
||||
Me.CheckBox3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'CheckBox2
|
||||
'
|
||||
Me.CheckBox2.AutoSize = True
|
||||
Me.CheckBox2.Location = New System.Drawing.Point(98, 34)
|
||||
Me.CheckBox2.Name = "CheckBox2"
|
||||
Me.CheckBox2.Size = New System.Drawing.Size(54, 17)
|
||||
Me.CheckBox2.TabIndex = 1
|
||||
Me.CheckBox2.Text = "White"
|
||||
Me.CheckBox2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'CheckBox1
|
||||
'
|
||||
Me.CheckBox1.AutoSize = True
|
||||
Me.CheckBox1.Location = New System.Drawing.Point(21, 34)
|
||||
Me.CheckBox1.Name = "CheckBox1"
|
||||
Me.CheckBox1.Size = New System.Drawing.Size(53, 17)
|
||||
Me.CheckBox1.TabIndex = 0
|
||||
Me.CheckBox1.Text = "Black"
|
||||
Me.CheckBox1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RichTextBox2
|
||||
'
|
||||
Me.RichTextBox2.Location = New System.Drawing.Point(67, 260)
|
||||
Me.RichTextBox2.MaxLength = 252
|
||||
Me.RichTextBox2.Name = "RichTextBox2"
|
||||
Me.RichTextBox2.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None
|
||||
Me.RichTextBox2.Size = New System.Drawing.Size(223, 97)
|
||||
Me.RichTextBox2.TabIndex = 5
|
||||
Me.RichTextBox2.Text = resources.GetString("RichTextBox2.Text")
|
||||
Me.RichTextBox2.WordWrap = False
|
||||
'
|
||||
'GroupBox2
|
||||
'
|
||||
Me.GroupBox2.Controls.Add(Me.CheckBox5)
|
||||
Me.GroupBox2.Controls.Add(Me.Label4)
|
||||
Me.GroupBox2.Controls.Add(Me.Label3)
|
||||
Me.GroupBox2.Controls.Add(Me.DateTimePicker2)
|
||||
Me.GroupBox2.Controls.Add(Me.DateTimePicker1)
|
||||
Me.GroupBox2.Location = New System.Drawing.Point(195, 62)
|
||||
Me.GroupBox2.Name = "GroupBox2"
|
||||
Me.GroupBox2.Size = New System.Drawing.Size(225, 114)
|
||||
Me.GroupBox2.TabIndex = 6
|
||||
Me.GroupBox2.TabStop = False
|
||||
Me.GroupBox2.Text = "Date Limit"
|
||||
'
|
||||
'CheckBox5
|
||||
'
|
||||
Me.CheckBox5.AutoSize = True
|
||||
Me.CheckBox5.Location = New System.Drawing.Point(123, 13)
|
||||
Me.CheckBox5.Name = "CheckBox5"
|
||||
Me.CheckBox5.Size = New System.Drawing.Size(95, 17)
|
||||
Me.CheckBox5.TabIndex = 4
|
||||
Me.CheckBox5.Text = "Auto Max Limit"
|
||||
Me.CheckBox5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label4
|
||||
'
|
||||
Me.Label4.AutoSize = True
|
||||
Me.Label4.Location = New System.Drawing.Point(7, 68)
|
||||
Me.Label4.Name = "Label4"
|
||||
Me.Label4.Size = New System.Drawing.Size(29, 13)
|
||||
Me.Label4.TabIndex = 3
|
||||
Me.Label4.Text = "End:"
|
||||
'
|
||||
'Label3
|
||||
'
|
||||
Me.Label3.AutoSize = True
|
||||
Me.Label3.Location = New System.Drawing.Point(7, 32)
|
||||
Me.Label3.Name = "Label3"
|
||||
Me.Label3.Size = New System.Drawing.Size(32, 13)
|
||||
Me.Label3.TabIndex = 2
|
||||
Me.Label3.Text = "Start:"
|
||||
'
|
||||
'DateTimePicker2
|
||||
'
|
||||
Me.DateTimePicker2.CustomFormat = "yyyy/MM/dd"
|
||||
Me.DateTimePicker2.Format = System.Windows.Forms.DateTimePickerFormat.Custom
|
||||
Me.DateTimePicker2.Location = New System.Drawing.Point(6, 81)
|
||||
Me.DateTimePicker2.Name = "DateTimePicker2"
|
||||
Me.DateTimePicker2.Size = New System.Drawing.Size(213, 20)
|
||||
Me.DateTimePicker2.TabIndex = 1
|
||||
Me.DateTimePicker2.Value = New Date(2018, 10, 5, 0, 0, 0, 0)
|
||||
'
|
||||
'DateTimePicker1
|
||||
'
|
||||
Me.DateTimePicker1.CustomFormat = "yyyy/MM/dd"
|
||||
Me.DateTimePicker1.Format = System.Windows.Forms.DateTimePickerFormat.Custom
|
||||
Me.DateTimePicker1.Location = New System.Drawing.Point(6, 45)
|
||||
Me.DateTimePicker1.Name = "DateTimePicker1"
|
||||
Me.DateTimePicker1.Size = New System.Drawing.Size(213, 20)
|
||||
Me.DateTimePicker1.TabIndex = 0
|
||||
Me.DateTimePicker1.Value = New Date(2018, 10, 5, 0, 0, 0, 0)
|
||||
'
|
||||
'GroupBox3
|
||||
'
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton7)
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton6)
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton5)
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton4)
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton3)
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton2)
|
||||
Me.GroupBox3.Controls.Add(Me.RadioButton1)
|
||||
Me.GroupBox3.Location = New System.Drawing.Point(13, 183)
|
||||
Me.GroupBox3.Name = "GroupBox3"
|
||||
Me.GroupBox3.Size = New System.Drawing.Size(407, 52)
|
||||
Me.GroupBox3.TabIndex = 7
|
||||
Me.GroupBox3.TabStop = False
|
||||
Me.GroupBox3.Text = "Region"
|
||||
'
|
||||
'RadioButton7
|
||||
'
|
||||
Me.RadioButton7.AutoSize = True
|
||||
Me.RadioButton7.Location = New System.Drawing.Point(336, 20)
|
||||
Me.RadioButton7.Name = "RadioButton7"
|
||||
Me.RadioButton7.Size = New System.Drawing.Size(48, 17)
|
||||
Me.RadioButton7.TabIndex = 6
|
||||
Me.RadioButton7.TabStop = True
|
||||
Me.RadioButton7.Text = "KOR"
|
||||
Me.RadioButton7.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton6
|
||||
'
|
||||
Me.RadioButton6.AutoSize = True
|
||||
Me.RadioButton6.Location = New System.Drawing.Point(285, 20)
|
||||
Me.RadioButton6.Name = "RadioButton6"
|
||||
Me.RadioButton6.Size = New System.Drawing.Size(45, 17)
|
||||
Me.RadioButton6.TabIndex = 5
|
||||
Me.RadioButton6.TabStop = True
|
||||
Me.RadioButton6.Text = "JPN"
|
||||
Me.RadioButton6.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton5
|
||||
'
|
||||
Me.RadioButton5.AutoSize = True
|
||||
Me.RadioButton5.Location = New System.Drawing.Point(233, 20)
|
||||
Me.RadioButton5.Name = "RadioButton5"
|
||||
Me.RadioButton5.Size = New System.Drawing.Size(46, 17)
|
||||
Me.RadioButton5.TabIndex = 4
|
||||
Me.RadioButton5.TabStop = True
|
||||
Me.RadioButton5.Text = "SPA"
|
||||
Me.RadioButton5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton4
|
||||
'
|
||||
Me.RadioButton4.AutoSize = True
|
||||
Me.RadioButton4.Location = New System.Drawing.Point(179, 20)
|
||||
Me.RadioButton4.Name = "RadioButton4"
|
||||
Me.RadioButton4.Size = New System.Drawing.Size(48, 17)
|
||||
Me.RadioButton4.TabIndex = 3
|
||||
Me.RadioButton4.TabStop = True
|
||||
Me.RadioButton4.Text = "GER"
|
||||
Me.RadioButton4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton3
|
||||
'
|
||||
Me.RadioButton3.AutoSize = True
|
||||
Me.RadioButton3.Location = New System.Drawing.Point(131, 20)
|
||||
Me.RadioButton3.Name = "RadioButton3"
|
||||
Me.RadioButton3.Size = New System.Drawing.Size(42, 17)
|
||||
Me.RadioButton3.TabIndex = 2
|
||||
Me.RadioButton3.TabStop = True
|
||||
Me.RadioButton3.Text = "ITA"
|
||||
Me.RadioButton3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton2
|
||||
'
|
||||
Me.RadioButton2.AutoSize = True
|
||||
Me.RadioButton2.Location = New System.Drawing.Point(79, 20)
|
||||
Me.RadioButton2.Name = "RadioButton2"
|
||||
Me.RadioButton2.Size = New System.Drawing.Size(46, 17)
|
||||
Me.RadioButton2.TabIndex = 1
|
||||
Me.RadioButton2.TabStop = True
|
||||
Me.RadioButton2.Text = "FRE"
|
||||
Me.RadioButton2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'RadioButton1
|
||||
'
|
||||
Me.RadioButton1.AutoSize = True
|
||||
Me.RadioButton1.Location = New System.Drawing.Point(25, 20)
|
||||
Me.RadioButton1.Name = "RadioButton1"
|
||||
Me.RadioButton1.Size = New System.Drawing.Size(48, 17)
|
||||
Me.RadioButton1.TabIndex = 0
|
||||
Me.RadioButton1.TabStop = True
|
||||
Me.RadioButton1.Text = "ENG"
|
||||
Me.RadioButton1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button2
|
||||
'
|
||||
Me.Button2.Location = New System.Drawing.Point(296, 289)
|
||||
Me.Button2.Name = "Button2"
|
||||
Me.Button2.Size = New System.Drawing.Size(75, 68)
|
||||
Me.Button2.TabIndex = 8
|
||||
Me.Button2.Text = "Save Text"
|
||||
Me.Button2.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Button3
|
||||
'
|
||||
Me.Button3.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.Button3.Location = New System.Drawing.Point(271, 382)
|
||||
Me.Button3.Name = "Button3"
|
||||
Me.Button3.Size = New System.Drawing.Size(128, 46)
|
||||
Me.Button3.TabIndex = 9
|
||||
Me.Button3.Text = "Build Event ROM"
|
||||
Me.Button3.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Label5
|
||||
'
|
||||
Me.Label5.AutoSize = True
|
||||
Me.Label5.Location = New System.Drawing.Point(67, 247)
|
||||
Me.Label5.Name = "Label5"
|
||||
Me.Label5.Size = New System.Drawing.Size(31, 13)
|
||||
Me.Label5.TabIndex = 10
|
||||
Me.Label5.Text = "Text:"
|
||||
'
|
||||
'Button4
|
||||
'
|
||||
Me.Button4.Location = New System.Drawing.Point(296, 260)
|
||||
Me.Button4.Name = "Button4"
|
||||
Me.Button4.Size = New System.Drawing.Size(75, 23)
|
||||
Me.Button4.TabIndex = 11
|
||||
Me.Button4.Text = "Reset Text"
|
||||
Me.Button4.UseVisualStyleBackColor = True
|
||||
'
|
||||
'TextBox1
|
||||
'
|
||||
Me.TextBox1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.TextBox1.Location = New System.Drawing.Point(35, 396)
|
||||
Me.TextBox1.Name = "TextBox1"
|
||||
Me.TextBox1.Size = New System.Drawing.Size(185, 21)
|
||||
Me.TextBox1.TabIndex = 12
|
||||
Me.TextBox1.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
|
||||
'
|
||||
'Label6
|
||||
'
|
||||
Me.Label6.AutoSize = True
|
||||
Me.Label6.Location = New System.Drawing.Point(34, 383)
|
||||
Me.Label6.Name = "Label6"
|
||||
Me.Label6.Size = New System.Drawing.Size(66, 13)
|
||||
Me.Label6.TabIndex = 13
|
||||
Me.Label6.Text = "ROM Name:"
|
||||
'
|
||||
'Label7
|
||||
'
|
||||
Me.Label7.AutoSize = True
|
||||
Me.Label7.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.Label7.Location = New System.Drawing.Point(220, 399)
|
||||
Me.Label7.Name = "Label7"
|
||||
Me.Label7.Size = New System.Drawing.Size(30, 15)
|
||||
Me.Label7.TabIndex = 14
|
||||
Me.Label7.Text = ".nds"
|
||||
'
|
||||
'Button5
|
||||
'
|
||||
Me.Button5.Location = New System.Drawing.Point(0, 427)
|
||||
Me.Button5.Name = "Button5"
|
||||
Me.Button5.Size = New System.Drawing.Size(24, 23)
|
||||
Me.Button5.TabIndex = 15
|
||||
Me.Button5.Text = "?"
|
||||
Me.Button5.UseVisualStyleBackColor = True
|
||||
'
|
||||
'Form1
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(437, 450)
|
||||
Me.Controls.Add(Me.Button5)
|
||||
Me.Controls.Add(Me.Label7)
|
||||
Me.Controls.Add(Me.Label6)
|
||||
Me.Controls.Add(Me.TextBox1)
|
||||
Me.Controls.Add(Me.Button4)
|
||||
Me.Controls.Add(Me.Label5)
|
||||
Me.Controls.Add(Me.Button3)
|
||||
Me.Controls.Add(Me.Button2)
|
||||
Me.Controls.Add(Me.GroupBox3)
|
||||
Me.Controls.Add(Me.GroupBox2)
|
||||
Me.Controls.Add(Me.RichTextBox2)
|
||||
Me.Controls.Add(Me.GroupBox1)
|
||||
Me.Controls.Add(Me.Label2)
|
||||
Me.Controls.Add(Me.Button1)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Controls.Add(Me.RichTextBox1)
|
||||
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
|
||||
Me.Name = "Form1"
|
||||
Me.Text = "Gen 5 Pokémon Distribution ROM Creator"
|
||||
Me.GroupBox1.ResumeLayout(False)
|
||||
Me.GroupBox1.PerformLayout()
|
||||
Me.GroupBox2.ResumeLayout(False)
|
||||
Me.GroupBox2.PerformLayout()
|
||||
Me.GroupBox3.ResumeLayout(False)
|
||||
Me.GroupBox3.PerformLayout()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents RichTextBox1 As RichTextBox
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents Label2 As Label
|
||||
Friend WithEvents OpenFileDialog1 As OpenFileDialog
|
||||
Friend WithEvents GroupBox1 As GroupBox
|
||||
Friend WithEvents CheckBox4 As CheckBox
|
||||
Friend WithEvents CheckBox3 As CheckBox
|
||||
Friend WithEvents CheckBox2 As CheckBox
|
||||
Friend WithEvents CheckBox1 As CheckBox
|
||||
Friend WithEvents RichTextBox2 As RichTextBox
|
||||
Friend WithEvents GroupBox2 As GroupBox
|
||||
Friend WithEvents Label4 As Label
|
||||
Friend WithEvents Label3 As Label
|
||||
Friend WithEvents DateTimePicker2 As DateTimePicker
|
||||
Friend WithEvents DateTimePicker1 As DateTimePicker
|
||||
Friend WithEvents CheckBox5 As CheckBox
|
||||
Friend WithEvents GroupBox3 As GroupBox
|
||||
Friend WithEvents RadioButton7 As RadioButton
|
||||
Friend WithEvents RadioButton6 As RadioButton
|
||||
Friend WithEvents RadioButton5 As RadioButton
|
||||
Friend WithEvents RadioButton4 As RadioButton
|
||||
Friend WithEvents RadioButton3 As RadioButton
|
||||
Friend WithEvents RadioButton2 As RadioButton
|
||||
Friend WithEvents RadioButton1 As RadioButton
|
||||
Friend WithEvents Button2 As Button
|
||||
Friend WithEvents Button3 As Button
|
||||
Friend WithEvents Label5 As Label
|
||||
Friend WithEvents Button4 As Button
|
||||
Friend WithEvents TextBox1 As TextBox
|
||||
Friend WithEvents Label6 As Label
|
||||
Friend WithEvents Label7 As Label
|
||||
Friend WithEvents Button5 As Button
|
||||
End Class
|
||||
3999
Gen5 Distribution Creator/Form1.resx
Normal file
3999
Gen5 Distribution Creator/Form1.resx
Normal file
File diff suppressed because it is too large
Load Diff
466
Gen5 Distribution Creator/Form1.vb
Normal file
466
Gen5 Distribution Creator/Form1.vb
Normal file
|
|
@ -0,0 +1,466 @@
|
|||
Public Class Form1
|
||||
Dim apppath As String = My.Application.Info.DirectoryPath
|
||||
Dim comp(4) As Integer
|
||||
Dim dt As Boolean = False
|
||||
Dim t As Date
|
||||
Dim t2 As Date
|
||||
Dim r As String = "BC83"
|
||||
Dim rtd As String = "Input Event Text Here.
|
||||
|
||||
This textbox is sized perfectly, so what fits in
|
||||
this box is all you can fit. A maximum of 7
|
||||
lines, max 36 characters per line, and a
|
||||
maximum of 252 characters total.
|
||||
Make sure you put the new lines(ENTER key)"
|
||||
|
||||
Private Sub comp_ch()
|
||||
comp(4) = (comp(0) Xor comp(1) Xor comp(2) Xor comp(3))
|
||||
Dim co As String = Hex(comp(4))
|
||||
If co.Length < 2 Then
|
||||
co = "0" & co
|
||||
End If
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(420, 2)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(420, co)
|
||||
End Sub
|
||||
Private Sub reg()
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(1444, 4)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(1444, r)
|
||||
End Sub
|
||||
Private Sub RT_ch(sender As Object, e As EventArgs) Handles RichTextBox1.TextChanged
|
||||
Label1.Text = RichTextBox1.Text.Length & " / 17504"
|
||||
If RichTextBox1.Text.Length > 17504 Then
|
||||
Label1.ForeColor = Color.Red
|
||||
Label1.Font = New Font(Label1.Font, FontStyle.Bold)
|
||||
ElseIf RichTextBox1.Text.Length < 17504 Then
|
||||
Label1.ForeColor = Color.Indigo
|
||||
Label1.Font = New Font(Label1.Font, FontStyle.Bold)
|
||||
ElseIf RichTextBox1.Text.Length = 17504 Then
|
||||
Label1.ForeColor = Color.Green
|
||||
Label1.Font = New Font(Label1.Font, FontStyle.Regular)
|
||||
End If
|
||||
'save(apppath & "\work.bin")
|
||||
End Sub
|
||||
Private Shared Sub Main(ByVal args As String())
|
||||
Dim startInfo As ProcessStartInfo = New ProcessStartInfo()
|
||||
startInfo.UseShellExecute = False
|
||||
startInfo.RedirectStandardInput = True
|
||||
startInfo.FileName = "12distro.bat"
|
||||
Dim process As Process = New Process()
|
||||
startInfo.WindowStyle = ProcessWindowStyle.Hidden
|
||||
process.StartInfo = startInfo
|
||||
process.Start()
|
||||
process.StandardInput.WriteLine("1")
|
||||
System.Threading.Thread.Sleep(2000)
|
||||
process.StandardInput.WriteLine("3")
|
||||
System.Threading.Thread.Sleep(2000)
|
||||
process.StandardInput.WriteLine("4")
|
||||
process.WaitForExit()
|
||||
End Sub
|
||||
Private Sub build()
|
||||
System.IO.Directory.CreateDirectory(apppath & "\cards\")
|
||||
save(apppath & "\cards\01.bin")
|
||||
System.IO.File.Delete(apppath & "\work.bin")
|
||||
System.IO.Directory.CreateDirectory(apppath & "\tools\")
|
||||
System.IO.File.Copy(My.Settings.ticket, apppath & "\tools\ticket.nds")
|
||||
System.IO.File.WriteAllText(apppath & "\tools\12distro.asm", My.Resources._12distro1)
|
||||
System.IO.File.WriteAllText(apppath & "\tools\options.asm", My.Resources.options)
|
||||
System.IO.File.WriteAllText(apppath & "\tools\armips_readme.txt", My.Resources.armips_readme)
|
||||
System.IO.File.WriteAllBytes(apppath & "\tools\ndstool.exe", My.Resources.ndstool)
|
||||
System.IO.File.WriteAllBytes(apppath & "\tools\armips.exe", My.Resources.armips)
|
||||
System.IO.File.WriteAllText(apppath & "\readme.txt", My.Resources.readme)
|
||||
System.IO.File.WriteAllText(apppath & "\12distro.bat", My.Resources._12distro)
|
||||
Dim p As String() = {"3", "
|
||||
"}
|
||||
Main(p)
|
||||
|
||||
System.IO.File.Delete(apppath & "\12distro.bat")
|
||||
System.IO.File.Delete(apppath & "\12distro.nds")
|
||||
System.IO.File.Delete(apppath & "\readme.txt")
|
||||
System.IO.Directory.Delete(apppath & "\tools\", True)
|
||||
System.IO.Directory.Delete(apppath & "\cards\", True)
|
||||
System.IO.File.Move(apppath & "\compiled.nds", apppath & "\" & TextBox1.Text & ".nds")
|
||||
MsgBox("Built as " & TextBox1.Text & ".nds", 0)
|
||||
Application.Restart()
|
||||
End Sub
|
||||
Private Sub Form1_Close(sender As Object, e As EventArgs) Handles MyBase.Closing
|
||||
System.IO.File.Delete(apppath & "\work.bin")
|
||||
End Sub
|
||||
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
1:
|
||||
If My.Settings.ticket = Nothing Then
|
||||
Dim a = MsgBox("This program requires a clean copy of the Liberty Ticket Distribution ROM. Do you have one?", MsgBoxStyle.YesNo, "Need Liberty Ticket ROM")
|
||||
If a = 6 Then
|
||||
MsgBox("Can you select it for me?", 0)
|
||||
OpenFileDialog1.Filter = "Event ROM (*.nds)|*.nds|All files (*.*)|*.*"
|
||||
OpenFileDialog1.ShowDialog()
|
||||
Dim myFile As String = OpenFileDialog1.FileName
|
||||
Dim l = System.IO.File.ReadAllText(myFile)
|
||||
If l.Contains("POKWBLIBERTYY8KP01") Then
|
||||
If System.IO.File.Exists(apppath & "/ticket.nds") Then
|
||||
System.IO.File.Delete(apppath & "/ticket.nds")
|
||||
End If
|
||||
System.IO.File.Copy(myFile, apppath & "/ticket.nds")
|
||||
My.Settings.ticket = apppath & "/ticket.nds"
|
||||
Else
|
||||
MsgBox("Error: Invaild File", 0)
|
||||
Close()
|
||||
End If
|
||||
ElseIf a = 7 Then
|
||||
MsgBox("Google is your friend.", 0)
|
||||
Close()
|
||||
End If
|
||||
Else
|
||||
If System.IO.File.Exists(My.Settings.ticket) Then
|
||||
Else
|
||||
My.Settings.ticket = Nothing
|
||||
GoTo 1
|
||||
End If
|
||||
End If
|
||||
System.IO.File.WriteAllBytes(apppath & "/work.bin", My.Resources.data)
|
||||
open(apppath & "/work.bin")
|
||||
initial()
|
||||
dt = True
|
||||
RadioButton1.PerformClick()
|
||||
reg()
|
||||
CheckBox1.Checked = True
|
||||
CheckBox2.Checked = True
|
||||
CheckBox3.Checked = True
|
||||
CheckBox4.Checked = True
|
||||
save(apppath & "\work.bin")
|
||||
End Sub
|
||||
Private Shared Function HexStringToByteArray(ByRef strInput As String) As Byte()
|
||||
Dim length As Integer
|
||||
Dim bOutput As Byte()
|
||||
Dim c(1) As Integer
|
||||
length = strInput.Length / 2
|
||||
ReDim bOutput(length - 1)
|
||||
For i As Integer = 0 To (length - 1)
|
||||
For j As Integer = 0 To 1
|
||||
c(j) = Asc(strInput.Chars(i * 2 + j))
|
||||
If ((c(j) >= Asc("0")) And (c(j) <= Asc("9"))) Then
|
||||
c(j) = c(j) - Asc("0")
|
||||
ElseIf ((c(j) >= Asc("A")) And (c(j) <= Asc("F"))) Then
|
||||
c(j) = c(j) - Asc("A") + &HA
|
||||
ElseIf ((c(j) >= Asc("a")) And (c(j) <= Asc("f"))) Then
|
||||
c(j) = c(j) - Asc("a") + &HA
|
||||
End If
|
||||
Next j
|
||||
bOutput(i) = (c(0) * &H10 + c(1))
|
||||
Next i
|
||||
Return (bOutput)
|
||||
End Function
|
||||
Private Sub open(ByVal myFile As String)
|
||||
'OpenFileDialog1.Filter = "All Supported Files (FULLWonderCards, *.ek#)|*.wc7full;*.wc6full;*.pcd;*.ek7;*.ek6;*.ek5;*.ek4|WonderCards (*.wc7full, *.wc6full, *.pcd)|*.wc7full;*.wc6full;*.pcd|Encrypted PK Files (*.ek#)|*.ek7;*.ek6;*.ek5;*.ek4;*.ek3;*.ek2;*.ek1|All files (*.*)|*.*"
|
||||
'OpenFileDialog1.ShowDialog()
|
||||
'Dim myFile As String = OpenFileDialog1.FileName
|
||||
'Dim ext() As String = myFile.Split(".")
|
||||
|
||||
Dim myBytes As Byte() = My.Computer.FileSystem.ReadAllBytes(myFile)
|
||||
Dim txtTemp As New System.Text.StringBuilder()
|
||||
For Each myByte As Byte In myBytes
|
||||
txtTemp.Append(myByte.ToString("X2"))
|
||||
Next
|
||||
RichTextBox1.Text = txtTemp.ToString()
|
||||
End Sub
|
||||
Private Sub save(myFile)
|
||||
Dim myBytes As Byte() = HexStringToByteArray(RichTextBox1.Text)
|
||||
My.Computer.FileSystem.WriteAllBytes(myFile, myBytes, False)
|
||||
End Sub
|
||||
Private Sub initial()
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(1, 1)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(1, "1")
|
||||
Dim f As Integer = RichTextBox1.Text.Length - 16
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(f, 2)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(f, "14")
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(1438, 2)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(1438, "02")
|
||||
save(apppath & "/work.bin")
|
||||
DateTimePicker1.Value = System.DateTime.Today
|
||||
DateTimePicker2.Value = System.DateTime.Today
|
||||
lim()
|
||||
Dim ft As String = ""
|
||||
Dim mx As Integer = 1012
|
||||
For i = 0 To mx - 1 Step 1
|
||||
ft = ft & "F"
|
||||
Next i
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(424, mx)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(424, ft)
|
||||
save(apppath & "\work.bin")
|
||||
End Sub
|
||||
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
|
||||
OpenFileDialog1.Filter = "Gen 5 Event Files (*.pgf)|*.pgf|All files (*.*)|*.*"
|
||||
OpenFileDialog1.ShowDialog()
|
||||
Dim myFile As String = OpenFileDialog1.FileName
|
||||
Dim Fn() As String = myFile.Split("\")
|
||||
Dim fn2 As String = Fn(UBound(Fn))
|
||||
Label2.Text = fn2
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(8, 408)
|
||||
|
||||
Dim myBytes As Byte() = My.Computer.FileSystem.ReadAllBytes(myFile)
|
||||
Dim txtTemp As New System.Text.StringBuilder()
|
||||
For Each myByte As Byte In myBytes
|
||||
txtTemp.Append(myByte.ToString("X2"))
|
||||
Next
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(8, txtTemp.ToString())
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(352, 8)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(352, "00000000")
|
||||
End Sub
|
||||
|
||||
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
|
||||
If CheckBox1.Checked = True Then
|
||||
comp(0) = 32
|
||||
Else
|
||||
comp(0) = 0
|
||||
End If
|
||||
comp_ch()
|
||||
End Sub
|
||||
Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
|
||||
If CheckBox2.Checked = True Then
|
||||
comp(1) = 16
|
||||
Else
|
||||
comp(1) = 0
|
||||
End If
|
||||
comp_ch()
|
||||
End Sub
|
||||
Private Sub CheckBox3_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox3.CheckedChanged
|
||||
If CheckBox3.Checked = True Then
|
||||
comp(2) = 128
|
||||
Else
|
||||
comp(2) = 0
|
||||
End If
|
||||
comp_ch()
|
||||
End Sub
|
||||
Private Sub CheckBox4_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox4.CheckedChanged
|
||||
If CheckBox4.Checked = True Then
|
||||
comp(3) = 64
|
||||
Else
|
||||
comp(3) = 0
|
||||
End If
|
||||
comp_ch()
|
||||
End Sub
|
||||
Private Function lted(ByVal int As Integer)
|
||||
Dim s As String
|
||||
If Hex(int).Length < 4 Then
|
||||
s = "0" & Hex(int)
|
||||
Else
|
||||
s = Hex(int)
|
||||
End If
|
||||
Dim s2 As String = s.Skip(2).ToArray() & s.Remove(2, 2).ToArray()
|
||||
Return s2
|
||||
End Function
|
||||
|
||||
Private Sub lim()
|
||||
Dim d As Integer = DateTimePicker1.Value.Date.Day
|
||||
Dim m As Integer = DateTimePicker1.Value.Date.Month
|
||||
Dim y As Integer = DateTimePicker1.Value.Date.Year
|
||||
|
||||
Dim d2 As Integer = DateTimePicker2.Value.Date.Day
|
||||
Dim m2 As Integer = DateTimePicker2.Value.Date.Month
|
||||
Dim y2 As Integer = DateTimePicker2.Value.Date.Year
|
||||
|
||||
Dim hm As String = Hex(m)
|
||||
Dim hd As String = Hex(d)
|
||||
Dim s As String = lted(y)
|
||||
|
||||
Dim hm2 As String = Hex(m2)
|
||||
Dim hd2 As String = Hex(d2)
|
||||
Dim s2 As String = lted(y2)
|
||||
|
||||
If hm.Length < 2 Then
|
||||
hm = "0" & hm
|
||||
End If
|
||||
If hm2.Length < 2 Then
|
||||
hm2 = "0" & hm2
|
||||
End If
|
||||
If hd.Length < 2 Then
|
||||
hd = "0" & hd
|
||||
End If
|
||||
If hd2.Length < 2 Then
|
||||
hd2 = "0" & hd2
|
||||
End If
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(17288, 16)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(17288, (s & hm & hd & s2 & hm2 & hd2))
|
||||
End Sub
|
||||
Private Sub CheckBox5_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox5.CheckedChanged
|
||||
If CheckBox5.Checked = True Then
|
||||
Label3.Enabled = False
|
||||
Label4.Enabled = False
|
||||
t = DateTimePicker1.Value
|
||||
t2 = DateTimePicker2.Value
|
||||
DateTimePicker1.Value = "1/1/1753"
|
||||
DateTimePicker2.Value = "12/31/9998"
|
||||
DateTimePicker1.Enabled = False
|
||||
DateTimePicker2.Enabled = False
|
||||
ElseIf CheckBox5.Checked = False Then
|
||||
Label3.Enabled = True
|
||||
Label4.Enabled = True
|
||||
DateTimePicker1.Value = t
|
||||
DateTimePicker2.Value = t2
|
||||
DateTimePicker1.Enabled = True
|
||||
DateTimePicker2.Enabled = True
|
||||
End If
|
||||
End Sub
|
||||
Private Sub dtch(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged
|
||||
If dt = True Then
|
||||
lim()
|
||||
End If
|
||||
End Sub
|
||||
Private Sub dt2ch(sender As Object, e As EventArgs) Handles DateTimePicker2.ValueChanged
|
||||
If dt = True Then
|
||||
lim()
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton1_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton1.CheckedChanged
|
||||
If RadioButton1.Checked = True Then
|
||||
r = "BC83"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton2_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton2.CheckedChanged
|
||||
If RadioButton2.Checked = True Then
|
||||
r = "369D"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton3_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton3.CheckedChanged
|
||||
If RadioButton3.Checked = True Then
|
||||
r = "AA39"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton4_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton4.CheckedChanged
|
||||
If RadioButton4.Checked = True Then
|
||||
r = "1844"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton5_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton5.CheckedChanged
|
||||
If RadioButton5.Checked = True Then
|
||||
r = "61E0"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton6_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton6.CheckedChanged
|
||||
If RadioButton6.Checked = True Then
|
||||
r = "7AF5"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
Private Sub RadioButton7_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton7.CheckedChanged
|
||||
If RadioButton7.Checked = True Then
|
||||
r = "7AF5"
|
||||
reg()
|
||||
Else
|
||||
r = Nothing
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
|
||||
If RichTextBox2.Text <> "" Then
|
||||
Dim ch As Char() = RichTextBox2.Text.ToCharArray
|
||||
Dim ft As String = Nothing
|
||||
Dim n As Integer = 0
|
||||
For n = 0 To UBound(ch) Step 1
|
||||
Dim t As String = Hex(Asc(ch(n)))
|
||||
If t.Length < 2 Then
|
||||
t = "0" & t
|
||||
End If
|
||||
ft = ft & t & "00"
|
||||
Next n
|
||||
If ft.Contains("0A00") Then
|
||||
ft = ft.Replace("0A00", "FEFF")
|
||||
End If
|
||||
Dim mx As Integer = 1012
|
||||
Dim mn As Integer = ft.Length
|
||||
Dim req As Integer = mx - mn
|
||||
|
||||
For n = 0 To req - 1 Step 1
|
||||
ft = ft & "F"
|
||||
Next n
|
||||
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(424, mx)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(424, ft)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub New()
|
||||
InitializeComponent()
|
||||
RichTextBox2.Text = rtd
|
||||
RichTextBox2.ForeColor = Color.Gray
|
||||
TextBox1.Text = "compiled"
|
||||
TextBox1.ForeColor = Color.Gray
|
||||
|
||||
'RichTextBox2.Enter += New EventHandler(AddressOf richTextBox2_GotFocus)
|
||||
'RichTextBox2.LostFocus += New EventHandler(AddressOf richTextBox2_LostFocus)
|
||||
End Sub
|
||||
|
||||
Private Sub richTextBox2_LostFocus(ByVal sender As Object, ByVal e As EventArgs) Handles RichTextBox2.Leave
|
||||
If RichTextBox2.Text = Nothing Then
|
||||
RichTextBox2.Text = rtd
|
||||
RichTextBox2.ForeColor = Color.Gray
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub richTextBox2_GotFocus(ByVal sender As Object, ByVal e As EventArgs) Handles RichTextBox2.Enter
|
||||
If RichTextBox2.Text = rtd Then
|
||||
RichTextBox2.Text = Nothing
|
||||
RichTextBox2.ForeColor = Color.Black
|
||||
End If
|
||||
End Sub
|
||||
Private Sub rt2ch(ByVal sender As Object, ByVal e As EventArgs) Handles RichTextBox2.TextChanged
|
||||
RichTextBox2.ForeColor = Color.Black
|
||||
End Sub
|
||||
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
|
||||
RichTextBox2.Text = Nothing
|
||||
Dim ft As String = ""
|
||||
Dim mx As Integer = 1012
|
||||
For i = 0 To mx - 1 Step 1
|
||||
ft = ft & "F"
|
||||
Next i
|
||||
RichTextBox1.Text = RichTextBox1.Text.Remove(424, mx)
|
||||
RichTextBox1.Text = RichTextBox1.Text.Insert(424, ft)
|
||||
RichTextBox2.ForeColor = Color.Black
|
||||
End Sub
|
||||
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
|
||||
build()
|
||||
End Sub
|
||||
|
||||
'Public Sub New()
|
||||
' InitializeComponent()
|
||||
' TextBox1.Text = "compiled"
|
||||
' TextBox1.ForeColor = Color.Gray
|
||||
|
||||
' 'RichTextBox2.Enter += New EventHandler(AddressOf richTextBox2_GotFocus)
|
||||
' 'RichTextBox2.LostFocus += New EventHandler(AddressOf richTextBox2_LostFocus)
|
||||
'End Sub
|
||||
|
||||
Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.Leave
|
||||
If TextBox1.Text = Nothing Then
|
||||
TextBox1.Text = "compiled"
|
||||
TextBox1.ForeColor = Color.Gray
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub TextBox1_GotFocus(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.Enter
|
||||
If TextBox1.Text = "compiled" Then
|
||||
TextBox1.Text = Nothing
|
||||
TextBox1.ForeColor = Color.Black
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
|
||||
Form2.ShowDialog()
|
||||
End Sub
|
||||
End Class
|
||||
112
Gen5 Distribution Creator/Form2.Designer.vb
generated
Normal file
112
Gen5 Distribution Creator/Form2.Designer.vb
generated
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||
Partial Class Form2
|
||||
Inherits System.Windows.Forms.Form
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
Try
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
Finally
|
||||
MyBase.Dispose(disposing)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.components = New System.ComponentModel.Container()
|
||||
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
|
||||
Me.Label1 = New System.Windows.Forms.Label()
|
||||
Me.Label2 = New System.Windows.Forms.Label()
|
||||
Me.LinkLabel1 = New System.Windows.Forms.LinkLabel()
|
||||
Me.LinkLabel2 = New System.Windows.Forms.LinkLabel()
|
||||
Me.LinkLabel3 = New System.Windows.Forms.LinkLabel()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'Timer1
|
||||
'
|
||||
Me.Timer1.Interval = 10000
|
||||
'
|
||||
'Label1
|
||||
'
|
||||
Me.Label1.AutoSize = True
|
||||
Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.Label1.Location = New System.Drawing.Point(-1, 12)
|
||||
Me.Label1.Name = "Label1"
|
||||
Me.Label1.Size = New System.Drawing.Size(276, 60)
|
||||
Me.Label1.TabIndex = 0
|
||||
Me.Label1.Text = "This program builds Distribution ROMs for Gen 5 " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Pokémon games. With a copy of t" &
|
||||
"he Liberty Ticket" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Distribution ROM and a .pgf event file, you can " & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "make a Dist" &
|
||||
"ribution ROM."
|
||||
'
|
||||
'Label2
|
||||
'
|
||||
Me.Label2.AutoSize = True
|
||||
Me.Label2.Location = New System.Drawing.Point(13, 106)
|
||||
Me.Label2.Name = "Label2"
|
||||
Me.Label2.Size = New System.Drawing.Size(160, 13)
|
||||
Me.Label2.TabIndex = 1
|
||||
Me.Label2.Text = "This program contains copies of:"
|
||||
'
|
||||
'LinkLabel1
|
||||
'
|
||||
Me.LinkLabel1.AutoSize = True
|
||||
Me.LinkLabel1.Location = New System.Drawing.Point(105, 138)
|
||||
Me.LinkLabel1.Name = "LinkLabel1"
|
||||
Me.LinkLabel1.Size = New System.Drawing.Size(41, 13)
|
||||
Me.LinkLabel1.TabIndex = 2
|
||||
Me.LinkLabel1.TabStop = True
|
||||
Me.LinkLabel1.Text = "ndstool"
|
||||
'
|
||||
'LinkLabel2
|
||||
'
|
||||
Me.LinkLabel2.AutoSize = True
|
||||
Me.LinkLabel2.Location = New System.Drawing.Point(107, 166)
|
||||
Me.LinkLabel2.Name = "LinkLabel2"
|
||||
Me.LinkLabel2.Size = New System.Drawing.Size(37, 13)
|
||||
Me.LinkLabel2.TabIndex = 3
|
||||
Me.LinkLabel2.TabStop = True
|
||||
Me.LinkLabel2.Text = "armips"
|
||||
'
|
||||
'LinkLabel3
|
||||
'
|
||||
Me.LinkLabel3.AutoSize = True
|
||||
Me.LinkLabel3.Location = New System.Drawing.Point(42, 197)
|
||||
Me.LinkLabel3.Name = "LinkLabel3"
|
||||
Me.LinkLabel3.Size = New System.Drawing.Size(195, 13)
|
||||
Me.LinkLabel3.TabIndex = 4
|
||||
Me.LinkLabel3.TabStop = True
|
||||
Me.LinkLabel3.Text = "Pokémon Duodecuple Distribution hack"
|
||||
'
|
||||
'Form2
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(275, 365)
|
||||
Me.Controls.Add(Me.LinkLabel3)
|
||||
Me.Controls.Add(Me.LinkLabel2)
|
||||
Me.Controls.Add(Me.LinkLabel1)
|
||||
Me.Controls.Add(Me.Label2)
|
||||
Me.Controls.Add(Me.Label1)
|
||||
Me.Name = "Form2"
|
||||
Me.Text = "About"
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
|
||||
Friend WithEvents Timer1 As Timer
|
||||
Friend WithEvents Label1 As Label
|
||||
Friend WithEvents Label2 As Label
|
||||
Friend WithEvents LinkLabel1 As LinkLabel
|
||||
Friend WithEvents LinkLabel2 As LinkLabel
|
||||
Friend WithEvents LinkLabel3 As LinkLabel
|
||||
End Class
|
||||
123
Gen5 Distribution Creator/Form2.resx
Normal file
123
Gen5 Distribution Creator/Form2.resx
Normal file
|
|
@ -0,0 +1,123 @@
|
|||
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
21
Gen5 Distribution Creator/Form2.vb
Normal file
21
Gen5 Distribution Creator/Form2.vb
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
Public Class Form2
|
||||
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
|
||||
Me.Close()
|
||||
End Sub
|
||||
|
||||
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Timer1.Start()
|
||||
End Sub
|
||||
|
||||
Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
|
||||
Process.Start("https://gbatemp.net/download/nintendo-ds-rom-tool-ndstool.29352/")
|
||||
End Sub
|
||||
|
||||
Private Sub LinkLabel2_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked
|
||||
Process.Start("http://aerie.wingdreams.net/?page_id=6")
|
||||
End Sub
|
||||
|
||||
Private Sub LinkLabel3_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel3.LinkClicked
|
||||
Process.Start("https://gbatemp.net/threads/pokemon-duodecuple-distribution-hack.285080/")
|
||||
End Sub
|
||||
End Class
|
||||
186
Gen5 Distribution Creator/Gen5 Distribution Creator.vbproj
Normal file
186
Gen5 Distribution Creator/Gen5 Distribution Creator.vbproj
Normal file
|
|
@ -0,0 +1,186 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.props" Condition="Exists('..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.props')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{82FE1063-3E51-4717-BA32-AEB77F873E0A}</ProjectGuid>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<StartupObject>Gen5_Distribution_Creator.My.MyApplication</StartupObject>
|
||||
<RootNamespace>Gen5_Distribution_Creator</RootNamespace>
|
||||
<AssemblyName>Gen 5 Pokémon Distribution ROM Creator</AssemblyName>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<MyType>WindowsForms</MyType>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<Deterministic>true</Deterministic>
|
||||
<NuGetPackageImportStamp>
|
||||
</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<DefineDebug>true</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DefineDebug>false</DefineDebug>
|
||||
<DefineTrace>true</DefineTrace>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DocumentationFile>
|
||||
</DocumentationFile>
|
||||
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionExplicit>On</OptionExplicit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionCompare>Binary</OptionCompare>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionStrict>Off</OptionStrict>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<OptionInfer>On</OptionInfer>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<SignManifests>true</SignManifests>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestCertificateThumbprint>60BE65DE8B23BD89153A729E77677150B1D8B64C</ManifestCertificateThumbprint>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<ManifestKeyFile>Regnum.pfx</ManifestKeyFile>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="MSBuild.AutoILMerge.Task, Version=1.0.0.0, Culture=en-US, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MSBuild.AutoILMerge.Task.1.1.1\lib\net40\MSBuild.AutoILMerge.Task.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Import Include="Microsoft.VisualBasic" />
|
||||
<Import Include="System" />
|
||||
<Import Include="System.Collections" />
|
||||
<Import Include="System.Collections.Generic" />
|
||||
<Import Include="System.Data" />
|
||||
<Import Include="System.Drawing" />
|
||||
<Import Include="System.Diagnostics" />
|
||||
<Import Include="System.Windows.Forms" />
|
||||
<Import Include="System.Linq" />
|
||||
<Import Include="System.Xml.Linq" />
|
||||
<Import Include="System.Threading.Tasks" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Form1.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form1.Designer.vb">
|
||||
<DependentUpon>Form1.vb</DependentUpon>
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Form2.Designer.vb">
|
||||
<DependentUpon>Form2.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Form2.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Resources.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="My Project\Settings.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="Form1.resx">
|
||||
<DependentUpon>Form1.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Form2.resx">
|
||||
<DependentUpon>Form2.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
<CustomToolNamespace>My.Resources</CustomToolNamespace>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ILMerge.props" />
|
||||
<None Include="My Project\app.manifest" />
|
||||
<None Include="My Project\Application.myapp">
|
||||
<Generator>MyApplicationCodeGenerator</Generator>
|
||||
<LastGenOutput>Application.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="My Project\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<CustomToolNamespace>My</CustomToolNamespace>
|
||||
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
|
||||
</None>
|
||||
<None Include="App.config" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Regnum.pfx" />
|
||||
<None Include="Resources\12distro.bat" />
|
||||
<None Include="Resources\data.bin" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="content\ILMergeOrder.txt" />
|
||||
<Content Include="favicon.ico" />
|
||||
<Content Include="ILMergeInternalizeExcludeList.txt" />
|
||||
<Content Include="ILMergeOrder.txt" />
|
||||
<None Include="Resources\options.asm" />
|
||||
<None Include="Resources\ndstool.exe" />
|
||||
<None Include="Resources\armips.exe" />
|
||||
<None Include="Resources\armips readme.txt" />
|
||||
<None Include="Resources\12distro.asm" />
|
||||
<None Include="Resources\readme.txt" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.props'))" />
|
||||
<Error Condition="!Exists('..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.targets" Condition="Exists('..\packages\MSBuild.AutoILMerge.Task.1.1.1\build\MSBuild.AutoILMerge.Task.targets')" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
37
Gen5 Distribution Creator/ILMerge.props
Normal file
37
Gen5 Distribution Creator/ILMerge.props
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- -->
|
||||
<!-- ILMerge project-specific settings. Almost never need to be set explicitly. -->
|
||||
<!-- for details, see http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx -->
|
||||
<!-- -->
|
||||
<!-- *** set this file to Type=None, CopyToOutput=Never *** -->
|
||||
|
||||
<!-- If True, all copy local dependencies will also be merged from referenced projects whether they are referenced in the current project explicitly or not -->
|
||||
<ILMergeTransitive>true</ILMergeTransitive>
|
||||
|
||||
<!-- Extra ILMerge library paths (semicolon-separated). Dont put your package dependencies here, they will be added automagically -->
|
||||
<ILMergeLibraryPath></ILMergeLibraryPath>
|
||||
|
||||
<!-- The solution NuGet package directory if not standard 'SOLUTION\packages' -->
|
||||
<ILMergePackagesPath></ILMergePackagesPath>
|
||||
|
||||
<!-- The merge order file name if differs from standard 'ILMergeOrder.txt' -->
|
||||
<ILMergeOrderFile></ILMergeOrderFile>
|
||||
|
||||
<!-- The strong key file name if not specified in the project -->
|
||||
<ILMergeKeyFile></ILMergeKeyFile>
|
||||
|
||||
<!-- The assembly version if differs for the version of the main assembly -->
|
||||
<ILMergeAssemblyVersion></ILMergeAssemblyVersion>
|
||||
|
||||
<!-- If True, all types from the merged assembly dependencies are marked as internal in the resulting file -->
|
||||
<ILMergeInternalize>false</ILMergeInternalize>
|
||||
|
||||
<!-- The file containing the list of type to exclude from internalization if different from ILMergeInternalizeExcludeList.txt (only relevant when "ILMergeInternalize" is true) -->
|
||||
<ILMergeInternalizeExcludeFile></ILMergeInternalizeExcludeFile>
|
||||
|
||||
<!-- Configures the /allowDup swith for ilmerge.exe. Use "*" or comma-separated type names -->
|
||||
<AllowDuplicateType></AllowDuplicateType>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
4
Gen5 Distribution Creator/ILMergeOrder.txt
Normal file
4
Gen5 Distribution Creator/ILMergeOrder.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# this file contains the partial list of the merged assemblies in the merge order
|
||||
# you can fill it from the obj\CONFIG\PROJECT.ilmerge generated on every build
|
||||
# and finetune merge order to your satisfaction
|
||||
|
||||
38
Gen5 Distribution Creator/My Project/Application.Designer.vb
generated
Normal file
38
Gen5 Distribution Creator/My Project/Application.Designer.vb
generated
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.42000
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
Namespace My
|
||||
|
||||
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
|
||||
' or if you encounter build errors in this file, go to the Project Designer
|
||||
' (go to Project Properties or double-click the My Project node in
|
||||
' Solution Explorer), and make changes on the Application tab.
|
||||
'
|
||||
Partial Friend Class MyApplication
|
||||
|
||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||
Public Sub New()
|
||||
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
|
||||
Me.IsSingleInstance = false
|
||||
Me.EnableVisualStyles = true
|
||||
Me.SaveMySettingsOnExit = true
|
||||
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
|
||||
End Sub
|
||||
|
||||
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
|
||||
Protected Overrides Sub OnCreateMainForm()
|
||||
Me.MainForm = Global.Gen5_Distribution_Creator.Form1
|
||||
End Sub
|
||||
End Class
|
||||
End Namespace
|
||||
11
Gen5 Distribution Creator/My Project/Application.myapp
Normal file
11
Gen5 Distribution Creator/My Project/Application.myapp
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<MyApplicationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<MySubMain>true</MySubMain>
|
||||
<MainForm>Form1</MainForm>
|
||||
<SingleInstance>false</SingleInstance>
|
||||
<ShutdownMode>0</ShutdownMode>
|
||||
<EnableVisualStyles>true</EnableVisualStyles>
|
||||
<AuthenticationMode>0</AuthenticationMode>
|
||||
<ApplicationType>0</ApplicationType>
|
||||
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
|
||||
</MyApplicationData>
|
||||
35
Gen5 Distribution Creator/My Project/AssemblyInfo.vb
Normal file
35
Gen5 Distribution Creator/My Project/AssemblyInfo.vb
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
Imports System
|
||||
Imports System.Reflection
|
||||
Imports System.Runtime.InteropServices
|
||||
|
||||
' General Information about an assembly is controlled through the following
|
||||
' set of attributes. Change these attribute values to modify the information
|
||||
' associated with an assembly.
|
||||
|
||||
' Review the values of the assembly attributes
|
||||
|
||||
<Assembly: AssemblyTitle("Gen 5 Pokémon Distribution ROM Creator")>
|
||||
<Assembly: AssemblyDescription("Creates Pokémon Distribution ROMs for Gen 5")>
|
||||
<Assembly: AssemblyCompany("Regnum")>
|
||||
<Assembly: AssemblyProduct("Gen 5 Pokémon Distribution ROM Creator")>
|
||||
<Assembly: AssemblyCopyright("Copyright © Regnum 2018")>
|
||||
<Assembly: AssemblyTrademark("Regnum")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
'The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
<Assembly: Guid("2de37fdc-aca4-4da9-8c2e-230a0fb8992a")>
|
||||
|
||||
' Version information for an assembly consists of the following four values:
|
||||
'
|
||||
' Major Version
|
||||
' Minor Version
|
||||
' Build Number
|
||||
' Revision
|
||||
'
|
||||
' You can specify all the values or you can default the Build and Revision Numbers
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.0.0.0")>
|
||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||
251
Gen5 Distribution Creator/My Project/Resources.Designer.vb
generated
Normal file
251
Gen5 Distribution Creator/My Project/Resources.Designer.vb
generated
Normal file
|
|
@ -0,0 +1,251 @@
|
|||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.42000
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
Imports System
|
||||
|
||||
Namespace My.Resources
|
||||
|
||||
'This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
'class via a tool like ResGen or Visual Studio.
|
||||
'To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
'with the /str option, or rebuild your VS project.
|
||||
'''<summary>
|
||||
''' A strongly-typed resource class, for looking up localized strings, etc.
|
||||
'''</summary>
|
||||
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0"), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
|
||||
Friend Module Resources
|
||||
|
||||
Private resourceMan As Global.System.Resources.ResourceManager
|
||||
|
||||
Private resourceCulture As Global.System.Globalization.CultureInfo
|
||||
|
||||
'''<summary>
|
||||
''' Returns the cached ResourceManager instance used by this class.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
|
||||
Get
|
||||
If Object.ReferenceEquals(resourceMan, Nothing) Then
|
||||
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Gen5_Distribution_Creator.Resources", GetType(Resources).Assembly)
|
||||
resourceMan = temp
|
||||
End If
|
||||
Return resourceMan
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Overrides the current thread's CurrentUICulture property for all
|
||||
''' resource lookups using this strongly typed resource class.
|
||||
'''</summary>
|
||||
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Friend Property Culture() As Global.System.Globalization.CultureInfo
|
||||
Get
|
||||
Return resourceCulture
|
||||
End Get
|
||||
Set
|
||||
resourceCulture = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to :menu
|
||||
'''@echo off
|
||||
'''cls
|
||||
'''echo Pokemon Duodecuple Distribution v1.4.1 "Skinless"
|
||||
'''echo -------------------------------------------------
|
||||
'''echo 1. Create a 12-distro ROM
|
||||
'''echo 2. Extract Wonder Cards from a ROM
|
||||
'''echo 3. Compile Wonder Cards into a ROM
|
||||
'''echo 4. Exit
|
||||
'''echo -------------------------------------------------
|
||||
'''set choice=
|
||||
'''set /p choice=?
|
||||
'''if "%choice%"=="1" goto patch
|
||||
'''if "%choice%"=="2" goto extract
|
||||
'''if "%choice%"=="3" goto compile
|
||||
'''if "%choice%"=="4" exit
|
||||
'''goto menu
|
||||
'''
|
||||
''':patch
|
||||
'''@echo off
|
||||
'''if not ex [rest of string was truncated]";.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property _12distro() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("_12distro", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to // Pokémon Duodecuple Distribution
|
||||
'''// by Prof. 9
|
||||
'''// Version 1.4.1 "Skinless"
|
||||
'''//
|
||||
'''// Thanks to Yellow Wood Goblin for the slot-1 read fix.
|
||||
'''
|
||||
'''.include options.asm
|
||||
'''
|
||||
'''.nds
|
||||
'''.open arm7.bin,2380000h
|
||||
'''
|
||||
'''.org 23A6370h
|
||||
'''loadhijack:
|
||||
''' push r5,r14
|
||||
''' bl 2007F98h
|
||||
''' ldr r0,=2013900h
|
||||
''' ldr r1,=2030000h
|
||||
''' ldrb r1,[r1]
|
||||
''' mov r1,r1,lsl 3h
|
||||
''' ldr r2,[r0,r1]
|
||||
''' ldr r1,=2011628h
|
||||
''' ldr r3,=16D0h
|
||||
''' bl 2003874h
|
||||
'''
|
||||
''' mov r5,0h
|
||||
'''fixchecksum:
|
||||
''' mov r2,2D0h
|
||||
''' mul r2,r5
|
||||
''' ldr r1,=201162Ch
|
||||
''' add r1,r1,r2
|
||||
''' ldr r2,=2CEh
|
||||
''' ldr r0,=27E3 [rest of string was truncated]";.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property _12distro1() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("_12distro1", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized resource of type System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property armips() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("armips", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to ARMIPS assembler v0.7d, released April 1 2013
|
||||
'''by Kingcom
|
||||
'''http://aerie.wingdreams.net/
|
||||
'''
|
||||
'''#################################
|
||||
'''# 0. TABLE OF CONTENTS #
|
||||
'''#################################
|
||||
'''
|
||||
''' 1. Introduction
|
||||
''' 1.1 Motivation
|
||||
''' 1.2 Usage
|
||||
''' 1.3 Change log
|
||||
''' 2. General Information
|
||||
''' 3. Features
|
||||
''' 3.1 Files
|
||||
''' 3.2 Comments
|
||||
''' 3.3 Labels
|
||||
''' 3.4 equ
|
||||
''' 3.5 Math Parser
|
||||
''' 3.6 Load delay detection
|
||||
''' 3.7 Strings
|
||||
''' 3.8 Areas
|
||||
''' 4. Assembler Directives
|
||||
''' 4.1 General Directives
|
||||
''' [rest of string was truncated]";.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property armips_readme() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("armips_readme", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized resource of type System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property data() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("data", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized resource of type System.Byte[].
|
||||
'''</summary>
|
||||
Friend ReadOnly Property ndstool() As Byte()
|
||||
Get
|
||||
Dim obj As Object = ResourceManager.GetObject("ndstool", resourceCulture)
|
||||
Return CType(obj,Byte())
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to // amount of wonder cards (1-12)
|
||||
'''.definelabel amount,1
|
||||
'''
|
||||
'''// distance between names (pixels)
|
||||
'''.definelabel dist,12
|
||||
'''
|
||||
'''// status text color
|
||||
'''.definelabel test,0x7FFF
|
||||
'''
|
||||
'''// menu text color
|
||||
'''.definelabel menu,0x7FFF
|
||||
'''
|
||||
'''// selected text color
|
||||
'''.definelabel select,0x001F
|
||||
'''
|
||||
'''// text mode: 0=left, 1=center, 2=right
|
||||
'''.definelabel mode,1
|
||||
'''
|
||||
'''// menu text x-position (pixels)
|
||||
'''.definelabel mxpos,128
|
||||
'''
|
||||
'''// menu text y-position (pixels)
|
||||
'''.definelabel mypos,0
|
||||
'''
|
||||
'''// x-position for status text 1 (pixels)
|
||||
'''.definelabel d1xp [rest of string was truncated]";.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property options() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("options", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Pokémon Duodecuple Distribution
|
||||
'''by Prof. 9
|
||||
'''Version v1.4.1 "Skinless"
|
||||
'''
|
||||
'''Features:
|
||||
'''- Multiple Wonder Cards in a single distro ROM
|
||||
'''- Ignores date restrictions
|
||||
'''- Automatically fixes Wonder Card checksums
|
||||
'''
|
||||
'''How to generate a 12-distro ROM:
|
||||
'''1. Put a clean Liberty Ticket distro ROM in the tools folder, name it ticket.nds
|
||||
'''2. In the tools folder, edit options.asm to fit your needs (optional)
|
||||
'''3. Fire up 12distro.bat and use option 1 to create a base 12-distro ROM
|
||||
'''4. Extract Wonder Cards from other distro R [rest of string was truncated]";.
|
||||
'''</summary>
|
||||
Friend ReadOnly Property readme() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("readme", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
145
Gen5 Distribution Creator/My Project/Resources.resx
Normal file
145
Gen5 Distribution Creator/My Project/Resources.resx
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
<?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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="armips" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\armips.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="armips_readme" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\armips readme.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="data" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\data.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="ndstool" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\ndstool.exe;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="options" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\options.asm;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="readme" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\readme.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="_12distro" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\12distro.bat;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
<data name="_12distro1" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\12distro.asm;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
|
||||
</data>
|
||||
</root>
|
||||
85
Gen5 Distribution Creator/My Project/Settings.Designer.vb
generated
Normal file
85
Gen5 Distribution Creator/My Project/Settings.Designer.vb
generated
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
'------------------------------------------------------------------------------
|
||||
' <auto-generated>
|
||||
' This code was generated by a tool.
|
||||
' Runtime Version:4.0.30319.42000
|
||||
'
|
||||
' Changes to this file may cause incorrect behavior and will be lost if
|
||||
' the code is regenerated.
|
||||
' </auto-generated>
|
||||
'------------------------------------------------------------------------------
|
||||
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
|
||||
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0"), _
|
||||
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Partial Friend NotInheritable Class MySettings
|
||||
Inherits Global.System.Configuration.ApplicationSettingsBase
|
||||
|
||||
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
|
||||
|
||||
#Region "My.Settings Auto-Save Functionality"
|
||||
#If _MyType = "WindowsForms" Then
|
||||
Private Shared addedHandler As Boolean
|
||||
|
||||
Private Shared addedHandlerLockObject As New Object
|
||||
|
||||
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
|
||||
Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs)
|
||||
If My.Application.SaveMySettingsOnExit Then
|
||||
My.Settings.Save()
|
||||
End If
|
||||
End Sub
|
||||
#End If
|
||||
#End Region
|
||||
|
||||
Public Shared ReadOnly Property [Default]() As MySettings
|
||||
Get
|
||||
|
||||
#If _MyType = "WindowsForms" Then
|
||||
If Not addedHandler Then
|
||||
SyncLock addedHandlerLockObject
|
||||
If Not addedHandler Then
|
||||
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
|
||||
addedHandler = True
|
||||
End If
|
||||
End SyncLock
|
||||
End If
|
||||
#End If
|
||||
Return defaultInstance
|
||||
End Get
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("")> _
|
||||
Public Property ticket() As String
|
||||
Get
|
||||
Return CType(Me("ticket"),String)
|
||||
End Get
|
||||
Set
|
||||
Me("ticket") = value
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
Namespace My
|
||||
|
||||
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
|
||||
Friend Module MySettingsProperty
|
||||
|
||||
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
|
||||
Friend ReadOnly Property Settings() As Global.Gen5_Distribution_Creator.My.MySettings
|
||||
Get
|
||||
Return Global.Gen5_Distribution_Creator.My.MySettings.Default
|
||||
End Get
|
||||
End Property
|
||||
End Module
|
||||
End Namespace
|
||||
9
Gen5 Distribution Creator/My Project/Settings.settings
Normal file
9
Gen5 Distribution Creator/My Project/Settings.settings
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="My" GeneratedClassName="MySettings" UseMySettingsClassName="true">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="ticket" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
76
Gen5 Distribution Creator/My Project/app.manifest
Normal file
76
Gen5 Distribution Creator/My Project/app.manifest
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
|
||||
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
|
||||
<security>
|
||||
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<!-- UAC Manifest Options
|
||||
If you want to change the Windows User Account Control level replace the
|
||||
requestedExecutionLevel node with one of the following.
|
||||
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
|
||||
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
|
||||
|
||||
Specifying requestedExecutionLevel element will disable file and registry virtualization.
|
||||
Remove this element if your application requires this virtualization for backwards
|
||||
compatibility.
|
||||
-->
|
||||
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
|
||||
</requestedPrivileges>
|
||||
</security>
|
||||
</trustInfo>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- A list of the Windows versions that this application has been tested on
|
||||
and is designed to work with. Uncomment the appropriate elements
|
||||
and Windows will automatically select the most compatible environment. -->
|
||||
|
||||
<!-- Windows Vista -->
|
||||
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
|
||||
|
||||
<!-- Windows 7 -->
|
||||
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
|
||||
|
||||
<!-- Windows 8 -->
|
||||
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
|
||||
|
||||
<!-- Windows 8.1 -->
|
||||
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
|
||||
|
||||
</application>
|
||||
</compatibility>
|
||||
|
||||
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
|
||||
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
|
||||
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
|
||||
also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
|
||||
<!--
|
||||
<application xmlns="urn:schemas-microsoft-com:asm.v3">
|
||||
<windowsSettings>
|
||||
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
|
||||
</windowsSettings>
|
||||
</application>
|
||||
-->
|
||||
|
||||
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
|
||||
<!--
|
||||
<dependency>
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity
|
||||
type="win32"
|
||||
name="Microsoft.Windows.Common-Controls"
|
||||
version="6.0.0.0"
|
||||
processorArchitecture="*"
|
||||
publicKeyToken="6595b64144ccf1df"
|
||||
language="*"
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
-->
|
||||
|
||||
</assembly>
|
||||
354
Gen5 Distribution Creator/Resources/12distro.asm
Normal file
354
Gen5 Distribution Creator/Resources/12distro.asm
Normal file
|
|
@ -0,0 +1,354 @@
|
|||
// Pokémon Duodecuple Distribution
|
||||
// by Prof. 9
|
||||
// Version 1.4.1 "Skinless"
|
||||
//
|
||||
// Thanks to Yellow Wood Goblin for the slot-1 read fix.
|
||||
|
||||
.include options.asm
|
||||
|
||||
.nds
|
||||
.open arm7.bin,2380000h
|
||||
|
||||
.org 23A6370h
|
||||
loadhijack:
|
||||
push r5,r14
|
||||
bl 2007F98h
|
||||
ldr r0,=2013900h
|
||||
ldr r1,=2030000h
|
||||
ldrb r1,[r1]
|
||||
mov r1,r1,lsl 3h
|
||||
ldr r2,[r0,r1]
|
||||
ldr r1,=2011628h
|
||||
ldr r3,=16D0h
|
||||
bl 2003874h
|
||||
|
||||
mov r5,0h
|
||||
fixchecksum:
|
||||
mov r2,2D0h
|
||||
mul r2,r5
|
||||
ldr r1,=201162Ch
|
||||
add r1,r1,r2
|
||||
ldr r2,=2CEh
|
||||
ldr r0,=27E3558h
|
||||
bl 2007318h
|
||||
ldr r1,=20118FAh
|
||||
mov r2,2D0h
|
||||
mul r2,r5
|
||||
strh r0,[r1,r2]
|
||||
add r5,r5,1h
|
||||
cmp r5,7h
|
||||
blt fixchecksum
|
||||
|
||||
loadhijackexit:
|
||||
mov r0,r4
|
||||
pop r5,r15
|
||||
|
||||
buttonhijack:
|
||||
push r14
|
||||
ldr r1,=2030000h
|
||||
ldrb r2,[r1]
|
||||
ldrh r0,[r0]
|
||||
tst r0,40h
|
||||
beq downtest
|
||||
cmp r2,0h
|
||||
.ifdef amount
|
||||
moveq r2,amount-1h
|
||||
.else
|
||||
moveq r2,0Bh
|
||||
.endif
|
||||
subne r2,1h
|
||||
b bhdo
|
||||
|
||||
downtest:
|
||||
tst r0,80h
|
||||
beq bhexit
|
||||
.ifdef amount
|
||||
cmp r2,amount-1h
|
||||
.else
|
||||
cmp r2,0Bh
|
||||
.endif
|
||||
moveq r2,0h
|
||||
addne r2,1h
|
||||
|
||||
bhdo:
|
||||
strh r2,[r1]
|
||||
bl displayroutine
|
||||
bic r0,r0,1h
|
||||
|
||||
bhexit:
|
||||
pop r15
|
||||
|
||||
displayhijack:
|
||||
push r14
|
||||
bl displayroutine
|
||||
bl 2000C94h
|
||||
pop r15
|
||||
|
||||
displayroutine:
|
||||
push r0-r7,r14
|
||||
bl 2007F98h
|
||||
ldr r1,=2030000h
|
||||
ldr r0,[r1,4h]
|
||||
cmp r0,0h
|
||||
bne skiploading
|
||||
str r0,[r1]
|
||||
add r1,4h
|
||||
|
||||
loadlanguage:
|
||||
ldr r0,=languagepool
|
||||
ldr r5,=27FFCE4h
|
||||
ldrb r5,[r5]
|
||||
cmp r5,6h
|
||||
bge setenglish
|
||||
ldrb r5,[r0,r5]
|
||||
b loadnext
|
||||
|
||||
setenglish:
|
||||
mov r5,0h
|
||||
|
||||
loadnext:
|
||||
mov r0,2D0h
|
||||
mul r5,r5,r0
|
||||
mov r4,0h
|
||||
ldr r6,=2013900h
|
||||
mov r3,4Ah
|
||||
|
||||
loadloop:
|
||||
ldr r2,[r6,r4]
|
||||
add r2,r2,r5
|
||||
add r2,r2,64h
|
||||
push r0,r1,r2
|
||||
bl 2003874h
|
||||
pop r0,r1,r2
|
||||
add r1,4Ah
|
||||
|
||||
add r4,8h
|
||||
.ifdef amount
|
||||
cmp r4,amount*8h
|
||||
.else
|
||||
cmp r4,60h
|
||||
.endif
|
||||
blt loadloop
|
||||
|
||||
clean:
|
||||
ldr r0,=2030004h
|
||||
ldr r1,=0FFFFh
|
||||
mov r2,0h
|
||||
|
||||
cleanloop:
|
||||
ldrh r3,[r0,r2]
|
||||
cmp r3,r1
|
||||
bne cleannext
|
||||
mov r3,0h
|
||||
strh r3,[r0,r2]
|
||||
|
||||
cleannext:
|
||||
add r2,2h
|
||||
ldr r3,=428h
|
||||
cmp r2,r3
|
||||
blt cleanloop
|
||||
|
||||
skiploading:
|
||||
ldr r5,=2030004h
|
||||
.ifdef mypos
|
||||
mov r6,mypos
|
||||
.else
|
||||
mov r6,0h
|
||||
.endif
|
||||
mov r7,0h
|
||||
|
||||
displayloop:
|
||||
bl 2006E04h // r0-r3
|
||||
str r5,[r13]
|
||||
ldr r3,=2030000h
|
||||
ldrb r3,[r3]
|
||||
cmp r3,r7
|
||||
.ifdef select
|
||||
ldreq r3,=select|8000h
|
||||
.else
|
||||
ldreq r3,=801Fh
|
||||
.endif
|
||||
.ifdef menu
|
||||
ldrne r3,=menu|8000h
|
||||
.else
|
||||
ldrne r3,=0FFFFh
|
||||
.endif
|
||||
.ifdef mxpos
|
||||
mov r1,mxpos
|
||||
.else
|
||||
mov r1,80h
|
||||
.endif
|
||||
mov r2,r6
|
||||
mov r4,0h
|
||||
str r4,[r13,4h]
|
||||
bl 2002D70h // r0-r2
|
||||
|
||||
add r5,4Ah
|
||||
.ifdef dist
|
||||
add r6,dist
|
||||
.else
|
||||
add r6,0Ch
|
||||
.endif
|
||||
add r7,1h
|
||||
.ifdef amount
|
||||
cmp r7,amount
|
||||
.else
|
||||
cmp r7,0Ch
|
||||
.endif
|
||||
blt displayloop
|
||||
|
||||
exit:
|
||||
pop r0-r7,r15
|
||||
.pool
|
||||
languagepool:
|
||||
dcb 0x05,0x00,0x01,0x03,0x02,0x04
|
||||
.close
|
||||
|
||||
.open arm9.bin,2000000h
|
||||
|
||||
.org 2000DECh
|
||||
mov r0,1h
|
||||
add r13,r13,10h
|
||||
pop r4,r15
|
||||
|
||||
.org 20011F0h
|
||||
bl displayhijack
|
||||
|
||||
.org 2001200h
|
||||
.ifdef d1xpos
|
||||
mov r5,d1xpos
|
||||
.else
|
||||
mov r5,80h
|
||||
.endif
|
||||
|
||||
.org 200121Ch
|
||||
.ifdef d1ypos
|
||||
mov r4,d1ypos
|
||||
.else
|
||||
mov r4,9Ch
|
||||
.endif
|
||||
|
||||
.org 2001244h
|
||||
.ifdef d1ypos
|
||||
mov r4,d1ypos
|
||||
.else
|
||||
mov r4,9Ch
|
||||
.endif
|
||||
|
||||
.org 2001260h
|
||||
.ifdef d1xpos
|
||||
mov r6,d1xpos
|
||||
.else
|
||||
mov r6,80h
|
||||
.endif
|
||||
|
||||
.org 200127Ch
|
||||
.ifdef d1ypos
|
||||
mov r2,d1ypos
|
||||
.else
|
||||
mov r2,9Ch
|
||||
.endif
|
||||
|
||||
.org 2001294h
|
||||
.ifdef d2xpos
|
||||
mov r1,d2xpos
|
||||
.else
|
||||
mov r1,80h
|
||||
.endif
|
||||
|
||||
.org 200129Ch
|
||||
.ifdef d2ypos
|
||||
mov r2,d2ypos
|
||||
.else
|
||||
mov r2,0B4h
|
||||
.endif
|
||||
|
||||
.org 20012C4h
|
||||
.ifdef d1ypos
|
||||
mov r2,d1ypos
|
||||
.else
|
||||
mov r2,9Ch
|
||||
.endif
|
||||
|
||||
.org 20012D8h
|
||||
.ifdef d2xpos
|
||||
mov r1,d2xpos
|
||||
.else
|
||||
mov r1,80h
|
||||
.endif
|
||||
|
||||
.org 20012E4h
|
||||
.ifdef d2ypos
|
||||
mov r2,d2ypos
|
||||
.else
|
||||
mov r2,0B4h
|
||||
.endif
|
||||
|
||||
.org 20012FCh
|
||||
.ifdef text
|
||||
dcd text|8000h
|
||||
.else
|
||||
dcd 0FFFFh
|
||||
.endif
|
||||
|
||||
.org 2001500h
|
||||
bl buttonhijack
|
||||
|
||||
.org 200150Ch
|
||||
bl loadhijack
|
||||
|
||||
.org 2002E5Ch
|
||||
.ifdef mode
|
||||
.if mode==0
|
||||
mov r7,r7
|
||||
.elseif mode==2
|
||||
sub r7,r7,r0
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.org 200E9BCh
|
||||
dcb 0x30,0x31,0x2E,0x62,0x69,0x6E,0x00,0x00,0x00 // 01.bin
|
||||
|
||||
.close
|
||||
.open banner.bin,0h
|
||||
|
||||
.org 2h
|
||||
dcw 8B9Fh
|
||||
|
||||
.org 240h
|
||||
dcw 50h,6Fh,6Bh,0E9h,6Dh,6Fh,6Eh,0Ah,47h,65h,6Eh,65h
|
||||
dcw 72h,61h,74h,69h,6Fh,6Eh,20h,35h,0Ah,44h,75h,6Fh
|
||||
dcw 64h,65h,63h,75h,70h,6Ch,65h,20h,44h,69h,73h,74h
|
||||
dcw 72h,69h,62h,75h,74h,69h,6Fh,6Eh,0h
|
||||
|
||||
.org 340h
|
||||
dcw 50h,6Fh,6Bh,0E9h,6Dh,6Fh,6Eh,0Ah,47h,65h,6Eh,65h
|
||||
dcw 72h,61h,74h,69h,6Fh,6Eh,20h,35h,0Ah,44h,75h,6Fh
|
||||
dcw 64h,65h,63h,75h,70h,6Ch,65h,20h,44h,69h,73h,74h
|
||||
dcw 72h,69h,62h,75h,74h,69h,6Fh,6Eh,0h
|
||||
|
||||
.org 440h
|
||||
dcw 50h,6Fh,6Bh,0E9h,6Dh,6Fh,6Eh,0Ah,47h,65h,6Eh,65h
|
||||
dcw 72h,61h,74h,69h,6Fh,6Eh,20h,35h,0Ah,44h,75h,6Fh
|
||||
dcw 64h,65h,63h,75h,70h,6Ch,65h,20h,44h,69h,73h,74h
|
||||
dcw 72h,69h,62h,75h,74h,69h,6Fh,6Eh,0h
|
||||
|
||||
.org 540h
|
||||
dcw 50h,6Fh,6Bh,0E9h,6Dh,6Fh,6Eh,0Ah,47h,65h,6Eh,65h
|
||||
dcw 72h,61h,74h,69h,6Fh,6Eh,20h,35h,0Ah,44h,75h,6Fh
|
||||
dcw 64h,65h,63h,75h,70h,6Ch,65h,20h,44h,69h,73h,74h
|
||||
dcw 72h,69h,62h,75h,74h,69h,6Fh,6Eh,0h
|
||||
|
||||
.org 640h
|
||||
dcw 50h,6Fh,6Bh,0E9h,6Dh,6Fh,6Eh,0Ah,47h,65h,6Eh,65h
|
||||
dcw 72h,61h,74h,69h,6Fh,6Eh,20h,35h,0Ah,44h,75h,6Fh
|
||||
dcw 64h,65h,63h,75h,70h,6Ch,65h,20h,44h,69h,73h,74h
|
||||
dcw 72h,69h,62h,75h,74h,69h,6Fh,6Eh,0h
|
||||
|
||||
.org 740h
|
||||
dcw 50h,6Fh,6Bh,0E9h,6Dh,6Fh,6Eh,0Ah,47h,65h,6Eh,65h
|
||||
dcw 72h,61h,74h,69h,6Fh,6Eh,20h,35h,0Ah,44h,75h,6Fh
|
||||
dcw 64h,65h,63h,75h,70h,6Ch,65h,20h,44h,69h,73h,74h
|
||||
dcw 72h,69h,62h,75h,74h,69h,6Fh,6Eh,0h
|
||||
|
||||
.close
|
||||
159
Gen5 Distribution Creator/Resources/12distro.bat
Normal file
159
Gen5 Distribution Creator/Resources/12distro.bat
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
:menu
|
||||
@echo off
|
||||
cls
|
||||
echo Pokemon Duodecuple Distribution v1.4.1 "Skinless"
|
||||
echo -------------------------------------------------
|
||||
echo 1. Create a 12-distro ROM
|
||||
echo 2. Extract Wonder Cards from a ROM
|
||||
echo 3. Compile Wonder Cards into a ROM
|
||||
echo 4. Exit
|
||||
echo -------------------------------------------------
|
||||
set choice=
|
||||
set /p choice=?
|
||||
if "%choice%"=="1" goto patch
|
||||
if "%choice%"=="2" goto extract
|
||||
if "%choice%"=="3" goto compile
|
||||
if "%choice%"=="4" exit
|
||||
goto menu
|
||||
|
||||
:patch
|
||||
@echo off
|
||||
if not exist tools\ndstool.exe goto ndstoolmissing
|
||||
if not exist tools\armips.exe goto armipsmissing
|
||||
if not exist tools\ticket.nds goto ticketmissing
|
||||
cls
|
||||
cd tools
|
||||
@echo on
|
||||
ndstool.exe -x ticket.nds -9 arm9.bin -7 arm7.bin -d data -t banner.bin -h header.bin
|
||||
@echo off
|
||||
copy data\data.bin data\01.bin
|
||||
copy data\data.bin data\02.bin
|
||||
copy data\data.bin data\03.bin
|
||||
copy data\data.bin data\04.bin
|
||||
copy data\data.bin data\05.bin
|
||||
copy data\data.bin data\06.bin
|
||||
copy data\data.bin data\07.bin
|
||||
copy data\data.bin data\08.bin
|
||||
copy data\data.bin data\09.bin
|
||||
copy data\data.bin data\10.bin
|
||||
copy data\data.bin data\11.bin
|
||||
copy data\data.bin data\12.bin
|
||||
if not exist ..\cards\01.bin copy data\data.bin ..\cards\01.bin
|
||||
if not exist ..\cards\02.bin copy data\data.bin ..\cards\02.bin
|
||||
if not exist ..\cards\03.bin copy data\data.bin ..\cards\03.bin
|
||||
if not exist ..\cards\04.bin copy data\data.bin ..\cards\04.bin
|
||||
if not exist ..\cards\05.bin copy data\data.bin ..\cards\05.bin
|
||||
if not exist ..\cards\06.bin copy data\data.bin ..\cards\06.bin
|
||||
if not exist ..\cards\07.bin copy data\data.bin ..\cards\07.bin
|
||||
if not exist ..\cards\08.bin copy data\data.bin ..\cards\08.bin
|
||||
if not exist ..\cards\09.bin copy data\data.bin ..\cards\09.bin
|
||||
if not exist ..\cards\10.bin copy data\data.bin ..\cards\10.bin
|
||||
if not exist ..\cards\11.bin copy data\data.bin ..\cards\11.bin
|
||||
if not exist ..\cards\12.bin copy data\data.bin ..\cards\12.bin
|
||||
del data\data.bin
|
||||
@echo on
|
||||
armips.exe 12distro.asm -erroronwarning
|
||||
if errorlevel 1 goto armipserror
|
||||
ndstool.exe -c 12distro.nds -9 arm9.bin -7 arm7.bin -d data -t banner.bin -h header.bin
|
||||
@echo off
|
||||
copy 12distro.nds ..\12distro.nds
|
||||
rd /S/Q data
|
||||
del arm9.bin arm7.bin banner.bin header.bin
|
||||
cd ..
|
||||
goto menu
|
||||
|
||||
:extract
|
||||
@echo off
|
||||
if not exist tools\ndstool.exe goto ndstoolmissing
|
||||
if not exist extract.nds goto extractmissing
|
||||
cls
|
||||
cd tools
|
||||
@echo on
|
||||
ndstool.exe -x ..\extract.nds -d data
|
||||
@echo off
|
||||
copy data\??.bin ..\??.bin
|
||||
copy data\data.bin ..\data.bin
|
||||
rd /S/Q data
|
||||
cd ..
|
||||
goto menu
|
||||
|
||||
:compile
|
||||
@echo off
|
||||
if not exist tools\ndstool.exe goto ndstoolmissing
|
||||
if not exist tools\12distro.nds goto 12distromissing
|
||||
cls
|
||||
cd tools
|
||||
@echo on
|
||||
ndstool.exe -x 12distro.nds -9 arm9.bin -7 arm7.bin -d data -t banner.bin -h header.bin
|
||||
@echo off
|
||||
copy ..\cards\??.bin data\??.bin
|
||||
@echo on
|
||||
ndstool.exe -c ..\compiled.nds -9 arm9.bin -7 arm7.bin -d data -t banner.bin -h header.bin
|
||||
@echo off
|
||||
rd /S/Q data
|
||||
del arm9.bin arm7.bin banner.bin header.bin
|
||||
cd ..
|
||||
goto menu
|
||||
|
||||
:ndstoolmissing
|
||||
@echo off
|
||||
cls
|
||||
echo Error:
|
||||
echo Could not find tools\ndstool.exe.
|
||||
echo.
|
||||
echo Press key to continue...
|
||||
pause >nul
|
||||
goto menu
|
||||
|
||||
:armipsmissing
|
||||
@echo off
|
||||
cls
|
||||
echo Error:
|
||||
echo Could not find tools\armips.exe.
|
||||
echo.
|
||||
echo Press key to continue...
|
||||
pause >nul
|
||||
goto menu
|
||||
|
||||
:ticketmissing
|
||||
@echo off
|
||||
cls
|
||||
echo Error:
|
||||
echo Could not find tools\ticket.nds.
|
||||
echo Put a clean Liberty Ticket distro ROM in the tools folder.
|
||||
echo.
|
||||
echo Press key to continue...
|
||||
pause >nul
|
||||
goto menu
|
||||
|
||||
:extractmissing
|
||||
@echo off
|
||||
cls
|
||||
echo Error:
|
||||
echo Could not find extract.nds.
|
||||
echo Name the ROM you want to extract from extract.nds.
|
||||
echo.
|
||||
echo Press key to continue...
|
||||
pause >nul
|
||||
goto menu
|
||||
|
||||
:12distromissing
|
||||
@echo off
|
||||
cls
|
||||
echo Error:
|
||||
echo Could not find tools\12distro.nds.
|
||||
echo Use option 1 to create a 12-distro ROM.
|
||||
echo.
|
||||
echo Press key to continue...
|
||||
pause >nul
|
||||
goto menu
|
||||
|
||||
:armipserror
|
||||
@echo off
|
||||
echo Error:
|
||||
echo Could not patch the ROM.
|
||||
echo This could be caused by erroneous settings in options.asm.
|
||||
echo.
|
||||
echo Press key to continue...
|
||||
pause >nul
|
||||
goto menu
|
||||
882
Gen5 Distribution Creator/Resources/armips readme.txt
Normal file
882
Gen5 Distribution Creator/Resources/armips readme.txt
Normal file
|
|
@ -0,0 +1,882 @@
|
|||
ARMIPS assembler v0.7d, released April 1 2013
|
||||
by Kingcom
|
||||
http://aerie.wingdreams.net/
|
||||
|
||||
#################################
|
||||
# 0. TABLE OF CONTENTS #
|
||||
#################################
|
||||
|
||||
1. Introduction
|
||||
1.1 Motivation
|
||||
1.2 Usage
|
||||
1.3 Change log
|
||||
2. General Information
|
||||
3. Features
|
||||
3.1 Files
|
||||
3.2 Comments
|
||||
3.3 Labels
|
||||
3.4 equ
|
||||
3.5 Math Parser
|
||||
3.6 Load delay detection
|
||||
3.7 Strings
|
||||
3.8 Areas
|
||||
4. Assembler Directives
|
||||
4.1 General Directives
|
||||
4.2 MIPS Directives
|
||||
4.3 ARM Directives
|
||||
5. Macros
|
||||
5.1 Assembler-defined MIPS macros
|
||||
5.2 Assembler-defined ARM macros
|
||||
5.3 User defined macros
|
||||
6. Known issues
|
||||
|
||||
|
||||
#################################
|
||||
# 1. INTRODUCTION #
|
||||
#################################
|
||||
|
||||
1.1 Motivation
|
||||
|
||||
I started writing this assembler when I got into PSX hacking,
|
||||
as the only available assemblers were less than user friendly.
|
||||
This assembler is an attempt to fix of all of the problems
|
||||
with currently available assemblers and to allow working with
|
||||
several different code binaries in the same game. It won't
|
||||
erase any code, it will just overwrite what the user wants
|
||||
to overwrite.
|
||||
The second version added ARM/THUMB support. It can be used for
|
||||
both GBA and NDS and includes both instruction sets. ARM has
|
||||
been implemented according to GBATEK by Martin Korth, and most
|
||||
pseudo opcodes and aliases are included (for example, mov for
|
||||
mcr/mrc and mrs/msr).
|
||||
This is likely the final release, except for potential bug
|
||||
fixes of critical problems.
|
||||
|
||||
|
||||
1.2 Usage
|
||||
|
||||
The assembler is called from the command line, and the
|
||||
arguments are as follows:
|
||||
|
||||
armips.exe code.asm [-temp tempfile.txt] [-sym symfile.sym]
|
||||
[-erroronwarning]
|
||||
|
||||
Code.asm is the main file of your assembly code. It can
|
||||
open and include other files, and basically do everything
|
||||
you want. The optional -temp parameter specifies a
|
||||
text file where all the temporary assembly data will be
|
||||
written to for debugging purposes. It will look like this:
|
||||
|
||||
; 1 file included
|
||||
; test.asm
|
||||
|
||||
00000000 .open "SLPM_870.50",0x8000F800 ; test.asm line 1
|
||||
8000F800 .org 0x800362DC ; test.asm line 5
|
||||
800362DC jal 0x801EBA3C ; test.asm line 7
|
||||
800362E0 .Close ; test.asm line 9
|
||||
|
||||
The second optional parameter, -sym, allows you to specify
|
||||
a file to output all the labels to. This can be used with
|
||||
no$gba for easier debugging.
|
||||
|
||||
The last optional parameter, -erroronwarning, has the same
|
||||
effect as the .erroronwarning directive. See 4.1 for more
|
||||
details.
|
||||
|
||||
|
||||
1.3 Change log
|
||||
|
||||
0.7d -added automatic optimizations for several ARM opcodes
|
||||
-many bugfixes and internal changes
|
||||
-added static labels
|
||||
-new directives: .warning, .error, .notice,
|
||||
.relativeinclude, .erroronwarning, .ifarm, .ifthumb
|
||||
-quotation marks can now be escaped in strings using \".
|
||||
0.7c -Macros can now contain unique local labels
|
||||
-area directive added
|
||||
-countless bugfixes
|
||||
-no$gba debug message support
|
||||
-full no$gba sym support
|
||||
0.7b -ARM/THUMB support
|
||||
-fixed break/syscall MIPS opcodes
|
||||
-added check if a MIPS instruction is valid inside
|
||||
a delay slot
|
||||
-fixed and extended base detection
|
||||
-added "." dummy label to the math parser to get the
|
||||
current memory address
|
||||
-added dcb/dcw/dcd directives
|
||||
|
||||
0.5b -Initial release
|
||||
|
||||
|
||||
#################################
|
||||
# 2. GENERAL INFORMATION #
|
||||
#################################
|
||||
|
||||
The assembler includes the whole MIPS R3000 instruction
|
||||
set, as well as the complete ARM7/ARM9 instruction set
|
||||
used by GBA and NDS, both THUMB and ARM mode. There are
|
||||
also several other features. Among these features are:
|
||||
|
||||
-a full fledged C-like math parser. It should behave
|
||||
exactly like in any C/C++ code, including all the
|
||||
weirdness. All immediate values can be specified by
|
||||
an expression, though some directives can't use
|
||||
variable addresses including labels
|
||||
-you can open several files in a row, but only one
|
||||
output file can be open at any time. You can specify
|
||||
its address in memory to allow overlay support. Any
|
||||
file can cross-reference any other included file
|
||||
-local, static, and global labels (see 3.3)
|
||||
-table support for user defined text encodings (see 3.7)
|
||||
-several MIPS macros to make writing code easier and
|
||||
faster (see 4.1)
|
||||
-user defined macros (see 5.3)
|
||||
-built-in checks for possible load delay problems (see 3.6)
|
||||
-optional automatic fix for said problems by inserting
|
||||
a nop between the instructions
|
||||
-output of the assembled code to a textfile, with RAM
|
||||
addresses and origin (see 1.2)
|
||||
-a directive to ensure that data is not bigger than a
|
||||
user defined size (see 3.8)
|
||||
|
||||
|
||||
#################################
|
||||
# 3. FEATURES #
|
||||
#################################
|
||||
|
||||
3.1 Files
|
||||
|
||||
Unlike other assemblers, you don't specify the input/output
|
||||
file as a command line argument. You have to open the file
|
||||
in the source code, and also close it yourself. This was
|
||||
done in order to support overlays, which are very common
|
||||
in PSX and NDS games. Instead of only having one output file,
|
||||
you can have as many as you need - each with its own address
|
||||
in memory. The files can cross-reference each other without
|
||||
any problems, so you can call code from other, currently
|
||||
not opened files as well.
|
||||
|
||||
.Open "SLPS_035.71", 0x8000F800
|
||||
; ...
|
||||
.Close
|
||||
.Open "System\0007.dat", 0x800CC000
|
||||
; ...
|
||||
.Close
|
||||
|
||||
|
||||
3.2 Comments
|
||||
|
||||
Both ; and // are supported for comments.
|
||||
|
||||
|
||||
3.3 Labels
|
||||
|
||||
There is support for both local, global and static labels.
|
||||
Local labels are only valid in the area between the previous
|
||||
and the next global label. Specific directives, like .org,
|
||||
will also terminate the area. A label is defined by writing
|
||||
a colon after its name. All labels can be used before they
|
||||
are defined.
|
||||
|
||||
GlobalLabel: ; This is a global label
|
||||
@@LocalLabel: ; This is a local label, it is only
|
||||
; valid until the next global one
|
||||
OtherGlobalLabel: ; this will terminate the area where
|
||||
; @@LocalLabel can be used
|
||||
b @@LocalLabel ; as a result, this will cause an error
|
||||
|
||||
Static labels behave like global labels, but are only valid
|
||||
in the very file they were defined. Any included files or
|
||||
files that include it cannot reference it. They can, however,
|
||||
contain another static label with the same name.
|
||||
|
||||
@staticlabel:
|
||||
|
||||
A label name can contain all characters from A-Z, numbers,
|
||||
and underscores. However, it cannot start with a digit. All
|
||||
label names are case insensitive.
|
||||
|
||||
Additionally, "." can be used to reference the current memory
|
||||
address.
|
||||
|
||||
|
||||
3.4 equ
|
||||
|
||||
This works as a text replacement and is defined as follows:
|
||||
|
||||
@@StringPointer equ 0x20(r29)
|
||||
|
||||
|
||||
There has to be a space before and after equ. The assembler
|
||||
will replace any occurance of @@StringPointer with "0x20(r29)".
|
||||
As it is a local equ, it will only do so in the current
|
||||
section, which is terminated by any global label or specific
|
||||
directives. This code:
|
||||
|
||||
@@StringPointer equ 0x20(r29)
|
||||
|
||||
lw a0,@@StringPointer
|
||||
nop
|
||||
sw a1,@@StringPointer
|
||||
|
||||
will assemble to this:
|
||||
|
||||
lw a0,0x20(r29)
|
||||
nop
|
||||
sw a1,0x20(r29)
|
||||
|
||||
There can be both global and local equs, but unlike normal
|
||||
labels, they have to be defined before they are used.
|
||||
|
||||
|
||||
3.5 Math Parser
|
||||
|
||||
A standard math parser with operator precedence and bracket
|
||||
support has been implemented. It is intended to behave exactly
|
||||
like any C/C++ parser and supports all unary, binary and
|
||||
tertiary operators of the C language. Every numeral argument
|
||||
can be given as an expression, including label names.
|
||||
However, some directives do not support variable addresses,
|
||||
so labels can not be used in expressions for them.
|
||||
The following bases are supported:
|
||||
|
||||
$A, 0xA and 0Ah for hexadecimal numbers
|
||||
0o12 and 12o for octal numbers
|
||||
1010b for binary numbers
|
||||
|
||||
Everything else is interpreted as a decimal numbers, so a
|
||||
leading zero does not indicate an octal number. Be aware that
|
||||
every number has to actually start with a digit, unless you
|
||||
use $ for hexadecimal numbers. For example, as FFh is a
|
||||
perfectly valid label name, you have to write 0FFh in this case.
|
||||
Labels, on the other hand, cannot start with a digit.
|
||||
|
||||
A few examples:
|
||||
|
||||
mov r0,10+0xA+$A+0Ah+0o12+12o+1010b
|
||||
ldr r1,=ThumbFunction+1
|
||||
li v0,Structure+(3*StructureSize)
|
||||
|
||||
|
||||
3.6 Load delay detection
|
||||
|
||||
This feature is still unfinished and experimental. It works
|
||||
in most cases, though. On MIPS platforms, any load is
|
||||
asynchronously delayed by one cycle. This means that the CPU
|
||||
won't stall if you attempt to use it before - and instead
|
||||
returns the old value on real hardware (emulators do not emulate
|
||||
this, which makes spotting these mistakes even more difficult).
|
||||
Therefore, the assembler will attempt to detect when such a
|
||||
case happens. The following code would result in a warning:
|
||||
|
||||
lw a0,0x10(r29)
|
||||
lbu a1,(a0)
|
||||
|
||||
This code doesn't take the load delay into account and will
|
||||
therefore only work on emulators. The assembler detects it
|
||||
and warns the user. In order to work correctly, the code should
|
||||
look like this:
|
||||
|
||||
lw a0,0x10(r29)
|
||||
nop
|
||||
lbu a1,(a0)
|
||||
|
||||
Here, one cycle is wasted with the nop and there will be no
|
||||
problems.
|
||||
However, the detection doesn't work in all cases. It can't
|
||||
check if the instruction at a branch destination uses a
|
||||
register that was loaded in the branch's delay slot, and it
|
||||
will give it a false alarm in the following example:
|
||||
|
||||
bnez a0,@@branch1
|
||||
nop
|
||||
j @@branch2
|
||||
lw a0,(a1)
|
||||
@@branch1:
|
||||
lbu a2,(a0)
|
||||
|
||||
You can fix the false warning by using the .resetdelay
|
||||
directive before the last instruction.
|
||||
|
||||
bnez a0,@@branch1
|
||||
nop
|
||||
j @@branch2
|
||||
lw a0,(a1)
|
||||
.resetdelay
|
||||
@@branch1:
|
||||
lbu a2,(a0)
|
||||
|
||||
This behavior may be fixed in a future revision.
|
||||
|
||||
|
||||
3.7 Strings
|
||||
|
||||
You can write ASCII text by simple using the .db/.ascii
|
||||
directive. However, you can also write text with custom
|
||||
encodings. In order to do that, you first have to load a table,
|
||||
and then use the .string directive to write the text.
|
||||
It behaves exactly like the .db instruction (so you can also
|
||||
specify immediate values as arguments), with the exception
|
||||
that it uses the table to encode the text, and appends a
|
||||
termination sequence after the last argument. This has to
|
||||
be specified inside the table, otherwise 0 is used.
|
||||
|
||||
.loadtable "custom.tbl"
|
||||
.string "Custom text",0xA,"and more."
|
||||
|
||||
The first and third argument are encoded according to the
|
||||
table, while the second one is written as-is.
|
||||
|
||||
Quotation marks can be escaped by prefixing them with a
|
||||
backslash. Any backlash not followed by a quotation mark is
|
||||
kept as-is. If you want to use a backslash at the end of a
|
||||
string, prefix it by another backlash.
|
||||
For example, to write a quotation mark followed by a backlash:
|
||||
|
||||
.ascii "\"\\"
|
||||
|
||||
|
||||
3.8 Areas
|
||||
|
||||
If you overwrite existing data, it is critical that you
|
||||
don't overwrite too much. The area directive will take care
|
||||
of checking if all the data is within a given space. In order
|
||||
to do that, you just have to give it the maximum size allowed.
|
||||
|
||||
.area 10h
|
||||
.word 1,2,3,4,5
|
||||
.endarea
|
||||
|
||||
This would cause an error on assembling, because the word
|
||||
directive takes up 20 bytes instead of the 16 that the
|
||||
area is allowed to have. This, on the other hand, would
|
||||
assemble without problems:
|
||||
|
||||
.org 8000000h
|
||||
.area 8000020h-.
|
||||
.word 1,2,3,4,5
|
||||
.endarea
|
||||
|
||||
Here, the area is 32 bytes, which is sufficient for the 20
|
||||
bytes used by .word.
|
||||
|
||||
|
||||
#################################
|
||||
# 4. ASSEMBLER DIRECTIVES #
|
||||
#################################
|
||||
|
||||
These commands tell the assembler to do various things
|
||||
like opening the output file or opening another source
|
||||
file.
|
||||
|
||||
|
||||
4.1 General Directives
|
||||
|
||||
.psx
|
||||
|
||||
Sets the architecture to PSX.
|
||||
|
||||
|
||||
.gba
|
||||
|
||||
Sets the architecture to GBA. It will default to THUMB
|
||||
mode, but it can switch to ARM at any time. ARM9 specific
|
||||
opcodes are disabled, so it is also usable for NDS ARM7
|
||||
code.
|
||||
|
||||
|
||||
.nds
|
||||
|
||||
Sets the architecture to NDS. It will default to ARM mode,
|
||||
but it can switch to THUMB at any time.
|
||||
|
||||
|
||||
.open FileName,RamAddress
|
||||
.open OldFileName,NewFileName,RamAddress
|
||||
|
||||
Opens the specified file for output. If two file names
|
||||
are specified, then the assembler will copy the first
|
||||
file to the second path. All paths are relative to the
|
||||
current working directory, so from where the assembler
|
||||
was called. RamAddress specifies the difference between
|
||||
the first byte of the file and its position in RAM.
|
||||
So if file position 0x800 is at position 0x80010000 in
|
||||
RAM, the header size is 0x80010000-0x800=0x8000F800.
|
||||
Only the changes specified by the assembly code will
|
||||
be inserted, the rest of the file remains untouched.
|
||||
|
||||
|
||||
.create FileName,RamAddress
|
||||
.createfile FileName,RamAddress
|
||||
|
||||
Creates the specified file for output. If the file already
|
||||
exists, it will be erased. All paths are relative to the
|
||||
current working directory, so from where the assembler was
|
||||
called. RamAddress specifies the difference between the
|
||||
first byte of the file and its position in RAM. So if file
|
||||
position 0x800 is at position 0x80010000 in RAM, the header
|
||||
size is 0x80010000-0x800=0x8000F800.
|
||||
|
||||
|
||||
.close
|
||||
.closefile
|
||||
|
||||
Closes the currently opened output file.
|
||||
|
||||
|
||||
.headersize RamAddress
|
||||
|
||||
Sets the header size to the given size. It will be
|
||||
used to calculate all addresses from that point on,
|
||||
until the next .headersize or .open/.create directive.
|
||||
The current address will also be set to RamAddress.
|
||||
|
||||
|
||||
.org RamAddress
|
||||
|
||||
Sets the output pointer to the specified address. The file
|
||||
address is computed by subtracting the header size from
|
||||
the given address.
|
||||
|
||||
|
||||
.orga FileAddress
|
||||
|
||||
Sets the output pointer to the specified address. The
|
||||
absolute file address is given.
|
||||
|
||||
|
||||
.include FileName
|
||||
|
||||
Opens the file called FileName to assemble it. All paths
|
||||
are relative to the current working directory, so from
|
||||
where the assembler was called. You can include other
|
||||
files up to a depth level of 64. This limit was added
|
||||
to prevent the assembler from crashing due to two files
|
||||
including each other over and over again.
|
||||
|
||||
|
||||
.incbin FileName
|
||||
.import FileName
|
||||
|
||||
Inserts the file specified by FileName into the currently
|
||||
opened output file. All paths are relative to the current
|
||||
working directory, so from where the assembler was called.
|
||||
|
||||
|
||||
.align [num]
|
||||
|
||||
Writes zeroes into the output file until the output
|
||||
position is divisible by num. If num is not given,
|
||||
4 will be used by default. num has to be a power of two.
|
||||
|
||||
|
||||
.fill length[,value]
|
||||
defs length[,value]
|
||||
|
||||
Inserts length amount of bytes of value. If value isn't
|
||||
specified, inserts zeros. Only the lowest 8 bits of
|
||||
value are inserted.
|
||||
|
||||
|
||||
.byte value[,...]
|
||||
.db value[,...]
|
||||
.ascii value[,...]
|
||||
dcb value[,...]
|
||||
|
||||
Inserts up to 128 bytes specified by the arguments. Value
|
||||
can be any equation, but only the lowest 8 bits are inserted.
|
||||
Value can also be a string in quotation marks.
|
||||
|
||||
|
||||
.halfword value[,...]
|
||||
.dh value[,...]
|
||||
dcw value[,...]
|
||||
|
||||
Inserts up to 128 halfwords specified by the arguments. Value
|
||||
can be any equation, but only the lowest 16 bits are inserted.
|
||||
Value can also be a string in quotation marks, in that case,
|
||||
every letter is inserted as a halfword.
|
||||
|
||||
|
||||
.word value[,...]
|
||||
.dw value[,...]
|
||||
dcd value[,...]
|
||||
|
||||
Inserts up to 128 words specified by the arguments. Value can
|
||||
be any equation. Value can also be a string in quotation marks,
|
||||
in that case, every letter is inserted as a word.
|
||||
|
||||
|
||||
.if equation
|
||||
|
||||
Assembles the next block only if equation is nonzero. Can be
|
||||
inverted by .else or .elseif and has to be terminated by
|
||||
.endif. The code is still verified even if the condition is
|
||||
not met.
|
||||
|
||||
|
||||
.else
|
||||
|
||||
Inverts previous .if or .elseif statement.
|
||||
|
||||
|
||||
.elseif equation
|
||||
|
||||
Equation will only be checked if previous .if or .elseif
|
||||
statement was not met. Assembles the next block only if
|
||||
equation is nonzero. Can be inverted by .else or .elseif
|
||||
and has to be terminated by .endif. The code is still
|
||||
verified even if the condition is not met.
|
||||
|
||||
|
||||
.ifdef label
|
||||
|
||||
Assembles the next block only if label is defined. Can be
|
||||
inverted by .else or .elseif and has to be terminated by
|
||||
.endif. The code is still verified even if the condition is
|
||||
not met.
|
||||
|
||||
|
||||
.ifndef label
|
||||
|
||||
Assembles the next block only if label is not defined. Can
|
||||
be inverted by .else or .elseif and has to be terminated by
|
||||
.endif. The code is still verified even if the condition
|
||||
is not met.
|
||||
|
||||
|
||||
.ifarm
|
||||
|
||||
Assembles the next block only if the active architecture is
|
||||
set to ARM at the time this directive is evaluated. Can
|
||||
be inverted by .else or .elseif and has to be terminated by
|
||||
.endif. The code is still verified even if the condition
|
||||
is not met.
|
||||
|
||||
|
||||
.ifthumb
|
||||
|
||||
Assembles the next block only if the active architecture is
|
||||
set to THUMB at the time this directive is evaluated. Can
|
||||
be inverted by .else or .elseif and has to be terminated by
|
||||
.endif. The code is still verified even if the condition
|
||||
is not met.
|
||||
|
||||
|
||||
.loadtable TableName
|
||||
.table TableName
|
||||
|
||||
Loads TableName for using it with the .string directive.
|
||||
The encoding has to be same as the assembly file's,
|
||||
as a simple binary comparison is used. All paths are relative
|
||||
to the current working directory, so from where the assembler
|
||||
was called. You can specify one or several termination bytes
|
||||
like this:
|
||||
02=a
|
||||
/FF
|
||||
FF will be inserted at the end of the string. If it is not
|
||||
given, zero is used instead.
|
||||
|
||||
|
||||
.string "String"
|
||||
.str "String"
|
||||
|
||||
Inserts the given string using the previously opened table.
|
||||
|
||||
|
||||
.definelabel Label,value
|
||||
|
||||
Defines Label with the given value. This may seem similar to equ,
|
||||
but you don't have to use this before using the label. It will also
|
||||
be added to the sym output.
|
||||
|
||||
|
||||
.area SizeEquation
|
||||
|
||||
Opens a new area with the maximum size of SizeEquation. If the
|
||||
data inside the area is bigger than the maximum, the assembler
|
||||
will output an error and refuse to assemble the code. It has to
|
||||
be closed by a .endarea directive.
|
||||
|
||||
|
||||
.endarea
|
||||
|
||||
Closes a previously opened area. If the difference between the
|
||||
current ram address and that of the previous .area directive is
|
||||
bigger than the given size, an error will prevent successful
|
||||
assembling.
|
||||
|
||||
|
||||
.warning "Message"
|
||||
|
||||
Prints the given message as a warning and sets the appropiate
|
||||
flags. Mostly only useful if used with conditionals.
|
||||
|
||||
|
||||
.error "Message"
|
||||
|
||||
Prints the given message as an error and sets the appropiate
|
||||
flags. Mostly only useful if used with conditionals.
|
||||
|
||||
|
||||
.notice "Message"
|
||||
|
||||
Prints the given message. Mostly only useful if used with
|
||||
conditionals
|
||||
|
||||
|
||||
.relativeinclude on/off
|
||||
|
||||
If set to on, all file paths are relative to the file that uses
|
||||
them. It defaults to off.
|
||||
|
||||
|
||||
.erroronwarning on/off
|
||||
|
||||
If set to on, a warning will be treated as an error and prevent
|
||||
successful assembling. It defaults to off.
|
||||
|
||||
|
||||
4.2 MIPS Directives
|
||||
|
||||
.resetdelay
|
||||
|
||||
Resets the current load delay status. This can be useful if
|
||||
the instruction after a delay slot access the delayed register,
|
||||
as the assembler can't detect that yet.
|
||||
|
||||
|
||||
.fixloaddelay
|
||||
|
||||
Automatically fixes any load delay problems by inserting a
|
||||
nop between the instructions. Best used in combination with
|
||||
.resetdelay.
|
||||
|
||||
|
||||
4.3 ARM Directives
|
||||
|
||||
.arm
|
||||
|
||||
This tells the assembler to use the full 32 bit ARM instruction
|
||||
set. It can be switched to THUMB at any time. NDS will default
|
||||
to this instruction set.
|
||||
|
||||
|
||||
.thumb
|
||||
|
||||
This tells the assembler to use the cut-down 16bit THUMB
|
||||
instruction set. It can be switched to ARM at any time. GBA will
|
||||
default to this instruction set.
|
||||
|
||||
|
||||
.pool
|
||||
|
||||
This directive works together with a pseudo opcode. In the code,
|
||||
you can use an ldr instruction to load a full 32 bit immediate.
|
||||
This immediate will be saved inside one of these pools.
|
||||
Example:
|
||||
|
||||
ldr r0,=0xFFEEDDCC
|
||||
; ...
|
||||
.pool
|
||||
|
||||
Here, the ldr instruction will be assembled as a PC-relative
|
||||
load and the value will be written into the pool. The range is
|
||||
limited, so you may have to define several pools.
|
||||
.pool will automatically align the position to a multiple of 4.
|
||||
|
||||
.msg
|
||||
|
||||
Inserts a no$gba debug message as described by GBATEK.
|
||||
|
||||
|
||||
#################################
|
||||
# 5. MACROS #
|
||||
#################################
|
||||
|
||||
5.1 Assembler-defined MIPS macros
|
||||
|
||||
There are various macros built into the assembler for ease
|
||||
of use. They are intended to make using some of the assembly
|
||||
simpler and faster.
|
||||
At the moment, these are all the MIPS macros included:
|
||||
|
||||
li reg,Immediate
|
||||
la reg,Immediate
|
||||
|
||||
Loads Immediate into the specified register by using a
|
||||
combination of lui/ori, a simple addiu or a simple ori.
|
||||
|
||||
|
||||
lb reg,Address
|
||||
lbu reg,Address
|
||||
lh reg,Address
|
||||
lhu reg,Address
|
||||
lw reg,Address
|
||||
|
||||
Loads a byte/halfword/word from the given address into
|
||||
the specified register by using a combination of lui
|
||||
and lb/lbu/lh/lhu/lw.
|
||||
|
||||
|
||||
ulh destreg,imm(sourcereg)
|
||||
ulh destreg,(sourcereg)
|
||||
ulhu destreg,imm(sourcereg)
|
||||
ulhu destreg,(sourcereg)
|
||||
|
||||
Loads an unaligned halfword from the address in sourcereg.
|
||||
It uses a combination of several lb/lbus and oris.
|
||||
|
||||
|
||||
ulw destreg,imm(sourcereg)
|
||||
ulw destreg,(sourcereg)
|
||||
|
||||
Loads an unaligned word from the address in sourcereg.
|
||||
It uses a combination of lwl/lwr.
|
||||
|
||||
|
||||
sb reg,Address
|
||||
sh reg,Address
|
||||
sw reg,Address
|
||||
|
||||
Writes a byte/halfword/word to the given address by
|
||||
using a combination of lui and sb/sh/sw.
|
||||
|
||||
|
||||
ush destreg,imm(sourcereg)
|
||||
ush destreg,(sourcereg)
|
||||
|
||||
Loads an unaligned halfword to the address in sourcereg.
|
||||
It uses a combination of several sb/sbus and shifts.
|
||||
|
||||
|
||||
usw destreg,imm(sourcereg)
|
||||
usw destreg,(sourcereg)
|
||||
|
||||
Loads an unaligned word to the address in sourcereg.
|
||||
It uses a combination of swl/swr.
|
||||
|
||||
|
||||
blt reg1,reg2,Dest
|
||||
bge reg1,reg2,Dest
|
||||
|
||||
If reg1 is lower than/greate or equal than reg2, branches
|
||||
to the given address. A combination of sltu and beq/bne
|
||||
is used.
|
||||
|
||||
|
||||
blt reg,Imm,Dest
|
||||
bge reg,Imm,Dest
|
||||
|
||||
If reg is lower than/greater or equal than Imm, branches
|
||||
to the given address. A combination of li, sltu and beq/bne
|
||||
is used.
|
||||
|
||||
|
||||
bne reg,Imm,Dest
|
||||
beq reg,Imm,Dest
|
||||
|
||||
If reg is not the same/the same as Imm, branches to the
|
||||
given address. A combination of li and beq/bne is used.
|
||||
|
||||
|
||||
rol reg1,reg2,reg3
|
||||
ror reg1,reg2,reg3
|
||||
|
||||
Rotates reg2 left/right by the value of the lower 5 bits
|
||||
of reg3 and stores the result in reg1. A combination of
|
||||
sll, srl and or is used.
|
||||
|
||||
|
||||
rol reg1,reg2,Imm
|
||||
ror reg1,reg2,Imm
|
||||
|
||||
Rotates reg2 left/right by Imm and stores the result in
|
||||
reg1. A combination of sll, srl and or is used.
|
||||
|
||||
|
||||
5.2 Assembler-defined ARM macros
|
||||
|
||||
The assembler will automatically convert the arguments between
|
||||
the following opcodes if possible:
|
||||
|
||||
mov <-> mvn
|
||||
bic <-> and
|
||||
cmp <-> cmn
|
||||
|
||||
E.g., "mov r0,-1" will be assembled as "mvn r0,0".
|
||||
|
||||
Additionally, "ldr rx,=immediate" can be used to load a 32-bit
|
||||
immediate. The assembler will try to convert it into a mov/mvn
|
||||
instruction if possible. otherwise, it will be stored in the
|
||||
nearest pool (see the .pool directive).
|
||||
"add rx,=immediate" can be used as a PC-relative add and will
|
||||
be assembled as "add rx,r15,(immediate-.-8)".
|
||||
|
||||
|
||||
5.3 User defined macros
|
||||
|
||||
The assembler allows the user to create his own macros.
|
||||
This is an example macro, a recreation of the builtin
|
||||
macro for li:
|
||||
|
||||
.macro myli,dest,value
|
||||
.if value < 0x10000
|
||||
ori dest,r0,value
|
||||
.elseif (value & 0xFFFF8000) == 0xFFFF8000
|
||||
addiu dest,r0,value & 0xFFFF
|
||||
.elseif (value & 0xFFFF) == 0
|
||||
lui dest,value >> 16
|
||||
.else
|
||||
lui dest,value >> 16 + (value & 0x8000 != 0)
|
||||
addiu dest,dest,value & 0xFFFF
|
||||
.endif
|
||||
.endmacro
|
||||
|
||||
The macro has to be initiated by a .macro directive. The
|
||||
first argument is the macro name, followed by a variable
|
||||
amount of arguments. The code inside the macro can be
|
||||
anything, and it can even call other macros (up to a nesting
|
||||
level of 128 calls). The macro is terminated by a .endmacro
|
||||
directive. It is not assembled when it is defined, but other
|
||||
code can call it from now on. All arguments are simple text
|
||||
replacements, so they can be anything from a number to a
|
||||
whole instruction parameter list.
|
||||
The macro is then called like this:
|
||||
|
||||
myli a0,0xFFEEDDCC
|
||||
|
||||
This code will, in this case, assemble to the following:
|
||||
|
||||
lui a0,0xFFEF
|
||||
addiu a0,a0,0xDDCC
|
||||
|
||||
The user can define a theoretically infinite amount of
|
||||
macros. Like all the other code, any equs are inserted
|
||||
before they are resolved.
|
||||
|
||||
With the latest revision, macros can also contain local
|
||||
labels that are changed to an unique name. Global labels,
|
||||
however, are uneffected by this. The label name is prefixed
|
||||
by the macro name and a counter id. This label:
|
||||
|
||||
.macro test
|
||||
@@MainLoop:
|
||||
.endmacro
|
||||
|
||||
will therefore be changed to:
|
||||
|
||||
@@test_00000000_mainloop
|
||||
|
||||
Each call of the macro will increase the counter.
|
||||
|
||||
|
||||
#################################
|
||||
# 6. KNOWN ISSUES #
|
||||
#################################
|
||||
|
||||
-the load delay check can't detect if an opcode is inside
|
||||
a delay slot, and if it will be used by the first
|
||||
instruction of the branch destination
|
||||
|
||||
BIN
Gen5 Distribution Creator/Resources/armips.exe
Normal file
BIN
Gen5 Distribution Creator/Resources/armips.exe
Normal file
Binary file not shown.
BIN
Gen5 Distribution Creator/Resources/data.bin
Normal file
BIN
Gen5 Distribution Creator/Resources/data.bin
Normal file
Binary file not shown.
BIN
Gen5 Distribution Creator/Resources/ndstool.exe
Normal file
BIN
Gen5 Distribution Creator/Resources/ndstool.exe
Normal file
Binary file not shown.
35
Gen5 Distribution Creator/Resources/options.asm
Normal file
35
Gen5 Distribution Creator/Resources/options.asm
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
// amount of wonder cards (1-12)
|
||||
.definelabel amount,1
|
||||
|
||||
// distance between names (pixels)
|
||||
.definelabel dist,12
|
||||
|
||||
// status text color
|
||||
.definelabel test,0x7FFF
|
||||
|
||||
// menu text color
|
||||
.definelabel menu,0x7FFF
|
||||
|
||||
// selected text color
|
||||
.definelabel select,0x001F
|
||||
|
||||
// text mode: 0=left, 1=center, 2=right
|
||||
.definelabel mode,1
|
||||
|
||||
// menu text x-position (pixels)
|
||||
.definelabel mxpos,128
|
||||
|
||||
// menu text y-position (pixels)
|
||||
.definelabel mypos,0
|
||||
|
||||
// x-position for status text 1 (pixels)
|
||||
.definelabel d1xpos,128
|
||||
|
||||
// y-position for status text 1 (pixels)
|
||||
.definelabel d1ypos,156
|
||||
|
||||
// x-position for status text 2 (pixels) (English mode only)
|
||||
.definelabel d2xpos,128
|
||||
|
||||
// y-position for status text 2 (pixels) (English mode only)
|
||||
.definelabel d2ypos,180
|
||||
52
Gen5 Distribution Creator/Resources/readme.txt
Normal file
52
Gen5 Distribution Creator/Resources/readme.txt
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
Pokémon Duodecuple Distribution
|
||||
by Prof. 9
|
||||
Version v1.4.1 "Skinless"
|
||||
|
||||
Features:
|
||||
- Multiple Wonder Cards in a single distro ROM
|
||||
- Ignores date restrictions
|
||||
- Automatically fixes Wonder Card checksums
|
||||
|
||||
How to generate a 12-distro ROM:
|
||||
1. Put a clean Liberty Ticket distro ROM in the tools folder, name it ticket.nds
|
||||
2. In the tools folder, edit options.asm to fit your needs (optional)
|
||||
3. Fire up 12distro.bat and use option 1 to create a base 12-distro ROM
|
||||
4. Extract Wonder Cards from other distro ROMs using option 2
|
||||
5. Place all the Wonder Cards you want in the cards folder, name them XX.bin
|
||||
6. Use option 3 to compile a 12-distro ROM with the cards you want
|
||||
|
||||
Credits/Thanks:
|
||||
- Kingcom (ARMIPS)
|
||||
- DarkFader (ndstool)
|
||||
- cearn (grit)
|
||||
- Yellow Wood Goblin (slot-1 read fix)
|
||||
|
||||
Changelog:
|
||||
v1.4.1 "Skinless" - 21st May 2013
|
||||
- Liberty Ticket ROM should now be named ticket.nds.
|
||||
- Settings placed in their own file, options.asm.
|
||||
- Removed background image support; this seems to fix compatibility with a
|
||||
whole bunch of flashcards.
|
||||
|
||||
v1.4 - 21st April 2011
|
||||
- Changed the patcher
|
||||
- Top screen background image support
|
||||
- Added a whole bunch of new options to 12distro.asm such as menu position,
|
||||
text alignment, colors, etc.
|
||||
|
||||
v1.3 - 17th April 2011
|
||||
- Added automatic checksum fix for corrupted Wonder Cards.
|
||||
- Included some extra .bat files to quickly extract/compile.
|
||||
|
||||
v1.2 - 4th April 2011
|
||||
- Now uses the NDS system firmware language for the Wonder Card names.
|
||||
- Uses a newer version of ndstool (doesn't really matter, though).
|
||||
- You can now specify in the .asm file at which half-a-line it starts
|
||||
writing Wonder Card names.
|
||||
|
||||
v1.1 - 25th March 2011
|
||||
- Fixed a slot-1 read access bug, increasing compatibility. Thanks to Yellow
|
||||
Wood Goblin.
|
||||
|
||||
v1.0 - 24th March 2011
|
||||
- Initial release.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
4
Gen5 Distribution Creator/content/ILMergeOrder.txt
Normal file
4
Gen5 Distribution Creator/content/ILMergeOrder.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# this file contains the partial list of the merged assemblies in the merge order
|
||||
# you can fill it from the obj\CONFIG\PROJECT.ilmerge generated on every build
|
||||
# and finetune merge order to your satisfaction
|
||||
|
||||
BIN
Gen5 Distribution Creator/favicon.ico
Normal file
BIN
Gen5 Distribution Creator/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 226 KiB |
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
Gen 5 Distribution ROM Creator.exe
|
||||
MSBuild.AutoILMerge.Task.dll
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
Gen 5 Pokémon Distribution ROM Creator.exe
|
||||
MSBuild.AutoILMerge.Task.dll
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
Gen5 Distribution Creator.exe
|
||||
MSBuild.AutoILMerge.Task.dll
|
||||
|
|
@ -0,0 +1 @@
|
|||
6ad86b2368523ae603c8584254758472b8d650e1
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen5 Distribution Creator.vbprojAssemblyReference.cache
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen5_Distribution_Creator.Form1.resources
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen5_Distribution_Creator.Resources.resources
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen5 Distribution Creator.vbproj.GenerateResource.cache
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen5 Distribution Creator.vbproj.CoreCompileInputs.cache
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen5_Distribution_Creator.Form2.resources
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen 5 Pokémon Distribution ROM Creator.exe
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Debug\Gen 5 Pokémon Distribution ROM Creator.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
Gen 5 Distribution ROM Creator.exe
|
||||
MSBuild.AutoILMerge.Task.dll
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
Gen 5 Pokémon Distribution ROM Creator.exe
|
||||
MSBuild.AutoILMerge.Task.dll
|
||||
Binary file not shown.
|
|
@ -0,0 +1,2 @@
|
|||
Gen5 Distribution Creator.exe
|
||||
MSBuild.AutoILMerge.Task.dll
|
||||
|
|
@ -0,0 +1 @@
|
|||
6ad86b2368523ae603c8584254758472b8d650e1
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen5_Distribution_Creator.Form1.resources
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen5_Distribution_Creator.Resources.resources
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen5 Distribution Creator.vbproj.GenerateResource.cache
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen5 Distribution Creator.vbproj.CoreCompileInputs.cache
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen5 Distribution Creator.vbprojAssemblyReference.cache
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen5_Distribution_Creator.Form2.resources
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen 5 Pokémon Distribution ROM Creator.exe
|
||||
C:\Users\Kochen Family\source\repos\Gen5 Distribution Creator\Gen5 Distribution Creator\obj\Release\Gen 5 Pokémon Distribution ROM Creator.pdb
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
5
Gen5 Distribution Creator/packages.config
Normal file
5
Gen5 Distribution Creator/packages.config
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="ILMerge" version="2.14.1208" targetFramework="net461" />
|
||||
<package id="MSBuild.AutoILMerge.Task" version="1.1.1" targetFramework="net461" />
|
||||
</packages>
|
||||
BIN
packages/ILMerge.2.14.1208/ILMerge.2.14.1208.nupkg
vendored
Normal file
BIN
packages/ILMerge.2.14.1208/ILMerge.2.14.1208.nupkg
vendored
Normal file
Binary file not shown.
BIN
packages/ILMerge.2.14.1208/tools/ILMerge.doc
vendored
Normal file
BIN
packages/ILMerge.2.14.1208/tools/ILMerge.doc
vendored
Normal file
Binary file not shown.
BIN
packages/ILMerge.2.14.1208/tools/ILMerge.exe
vendored
Normal file
BIN
packages/ILMerge.2.14.1208/tools/ILMerge.exe
vendored
Normal file
Binary file not shown.
BIN
packages/MSBuild.AutoILMerge.Task.1.1.1/MSBuild.AutoILMerge.Task.1.1.1.nupkg
vendored
Normal file
BIN
packages/MSBuild.AutoILMerge.Task.1.1.1/MSBuild.AutoILMerge.Task.1.1.1.nupkg
vendored
Normal file
Binary file not shown.
11
packages/MSBuild.AutoILMerge.Task.1.1.1/build/MSBuild.AutoILMerge.Task.props
vendored
Normal file
11
packages/MSBuild.AutoILMerge.Task.1.1.1/build/MSBuild.AutoILMerge.Task.props
vendored
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- try to import project-specific settings; also use fixed name that was injected into project by NuGet -->
|
||||
<PropertyGroup>
|
||||
<!-- at this point only MSBuild* property are available -->
|
||||
<MSBuildIlMerge1>$(MSBuildProjectDirectory)\$(MSBuildProjectName).ILMerge.props</MSBuildIlMerge1>
|
||||
<MSBuildIlMerge2>$(MSBuildProjectDirectory)\ILMerge.props</MSBuildIlMerge2>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildIlMerge1)" Condition="Exists($(MSBuildIlMerge1))"/>
|
||||
<Import Project="$(MSBuildIlMerge2)" Condition="Exists($(MSBuildIlMerge2))"/>
|
||||
</Project>
|
||||
85
packages/MSBuild.AutoILMerge.Task.1.1.1/build/MSBuild.AutoILMerge.Task.targets
vendored
Normal file
85
packages/MSBuild.AutoILMerge.Task.1.1.1/build/MSBuild.AutoILMerge.Task.targets
vendored
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- give project-specific settings reasonable defaults -->
|
||||
<ILMergePackagesPath Condition=" $(ILMergePackagePath) == '' ">$(SolutionDir)packages</ILMergePackagesPath>
|
||||
<ILMergeOrderFile Condition=" $(ILMergeOrderFile) == '' ">$(MSBuildProjectDir)ILMergeOrder.txt</ILMergeOrderFile>
|
||||
<ILMergeKeyFile Condition=" $(ILMergeKeyFile) == '' ">$(KeyOriginatorFile)</ILMergeKeyFile>
|
||||
<ILMergeAssemblyVersion Condition=" $(ILMergeAssemblyVersion) == '' "></ILMergeAssemblyVersion>
|
||||
<ILMergeToolsPath>$(MSBuildThisFileDirectory)..\tools\</ILMergeToolsPath>
|
||||
<ILMergeInternalizeExcludeFile Condition=" $(ILMergeInternalizeExcludeFile) == '' ">$(MSBuildProjectDir)ILMergeInternalizeExcludeList.txt</ILMergeInternalizeExcludeFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- decide what goes into output after compile-->
|
||||
<Target Name="SaveILMergeData" AfterTargets="CoreCompile">
|
||||
<Message Text="Transitive merge" Importance="high" Condition="$(ILMergeTransitive) == 'true'" />
|
||||
|
||||
<!-- all copy local assemblies referenced from this project that go to the executable except the main one-->
|
||||
<CreateItem Include="@(ReferencePath)" Condition=" '%(CopyLocal)' == 'true' ">
|
||||
<Output TaskParameter="Include" ItemName="MergedAssemblies"/>
|
||||
</CreateItem>
|
||||
|
||||
<!-- all copy local dependency assemblies-->
|
||||
<CreateItem Include="@(ReferenceDependencyPaths)" Condition=" '%(CopyLocal)' == 'true' ">
|
||||
<Output TaskParameter="Include" ItemName="MergedDependencies"/>
|
||||
</CreateItem>
|
||||
|
||||
<!-- all assemblies that doesn't so we use their directories as library path -->
|
||||
<CreateItem Include="@(ReferencePath)" Condition=" '%(CopyLocal)' == 'false' ">
|
||||
<Output TaskParameter="Include" ItemName="UnmergedAssemblies"/>
|
||||
</CreateItem>
|
||||
|
||||
<!-- all content items marked as copy always or newest -->
|
||||
<CreateItem Include="@(Content)" Condition=" '%(Content.CopyToOutputDirectory)' == 'Always' OR '%(Content.CopyToOutputDirectory)' == 'PreserveNewest' ">
|
||||
<Output TaskParameter="Include" ItemName="LocalContentFiles"/>
|
||||
</CreateItem>
|
||||
|
||||
<PropertyGroup Condition=" $(ILMergeTransitive) == 'true' ">
|
||||
<!-- add the main assembly as the first one -->
|
||||
<MergedAssemblies>@(IntermediateAssembly->'%(FullPath)');@(MergedAssemblies->'%(FullPath)');@(MergedDependencies->'%(FullPath)')</MergedAssemblies>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" $(ILMergeTransitive) == 'false' OR $(ILMergeTransitive) == '' ">
|
||||
<MergedAssemblies>@(IntermediateAssembly->'%(FullPath)');@(MergedAssemblies->'%(FullPath)')</MergedAssemblies>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Ideally we should copy all not-copy-local assemblies that are not in the ILMergeLibraryPath to -->
|
||||
<!-- a temp directory and add it to the start search path, but we keep it simple here -->
|
||||
<UnmergedAssemblies>@(UnmergedAssemblies->'%(FullPath)')</UnmergedAssemblies>
|
||||
<MergeOutputFile>$(TargetPath)</MergeOutputFile>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
<!-- do not copy copy-local assemblies, they will be merged -->
|
||||
<Target Name="_CopyFilesMarkedCopyLocal" />
|
||||
|
||||
<!-- override standard target our own merge-and-copy-content -->
|
||||
<Target Name="CopyFilesToOutputDirectory">
|
||||
<Message Text="Merged assemblies: $(MergedAssemblies)" Importance="high" />
|
||||
<Message Text="Not merged assemblies: $(UnmergedAssemblies)" Importance="normal" />
|
||||
<Message Text="Merged Output in: $(MergeOutputFile)" Importance="normal" />
|
||||
<Message Text="Key file: $(ILMergeKeyFile)" Importance="normal" />
|
||||
<Message Text="Libraries in: $(ILMergeLibraryPath)" Importance="normal" />
|
||||
<Message Text="Packages in: $(ILMergePackagesPath)" Importance="normal" />
|
||||
<Message Text="Merge order file: $(ILMergeOrderFile)" Importance="normal" />
|
||||
<Message Text="Local content: @(LocalContentFiles)" Importance="low" />
|
||||
<Message Text="Internalization enabled: $(ILMergeInternalize)" Importance="normal" />
|
||||
|
||||
<!-- run ILMerge -->
|
||||
<MSBuild.AutoILMerge.Task TargetPlatform="net40"
|
||||
KeyFile="$(KeyOriginatorFile)"
|
||||
OutputFile="$(MergeOutputFile)"
|
||||
LibraryPath="$(ILMergeLibraryPath)"
|
||||
InputAssemblies="$(MergedAssemblies)"
|
||||
LibraryAssemblies="$(UnmergedAssemblies)"
|
||||
PackagesDir="$(ILMergePackagesPath)"
|
||||
MergeOrderFile="$(ILMergeOrderFile)"
|
||||
DebugInfo="true" ShouldLog="true"
|
||||
Internalize="$(ILMergeInternalize)"
|
||||
AllowDuplicateType="$(AllowDuplicateType)"
|
||||
InternalizeExcludeFile="$(ILMergeInternalizeExcludeFile)" />
|
||||
<!-- copy content files marked as copy always or newest -->
|
||||
<Copy SourceFiles="@(LocalContentFiles)" DestinationFolder="$(OutputPath)" />
|
||||
</Target>
|
||||
<UsingTask AssemblyFile="$(ILMergeToolsPath)MSBuild.AutoILMerge.Task.dll" TaskName="MSBuild.AutoILMerge.Task" />
|
||||
</Project>
|
||||
37
packages/MSBuild.AutoILMerge.Task.1.1.1/content/ILMerge.props
vendored
Normal file
37
packages/MSBuild.AutoILMerge.Task.1.1.1/content/ILMerge.props
vendored
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!-- -->
|
||||
<!-- ILMerge project-specific settings. Almost never need to be set explicitly. -->
|
||||
<!-- for details, see http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx -->
|
||||
<!-- -->
|
||||
<!-- *** set this file to Type=None, CopyToOutput=Never *** -->
|
||||
|
||||
<!-- If True, all copy local dependencies will also be merged from referenced projects whether they are referenced in the current project explicitly or not -->
|
||||
<ILMergeTransitive>true</ILMergeTransitive>
|
||||
|
||||
<!-- Extra ILMerge library paths (semicolon-separated). Dont put your package dependencies here, they will be added automagically -->
|
||||
<ILMergeLibraryPath></ILMergeLibraryPath>
|
||||
|
||||
<!-- The solution NuGet package directory if not standard 'SOLUTION\packages' -->
|
||||
<ILMergePackagesPath></ILMergePackagesPath>
|
||||
|
||||
<!-- The merge order file name if differs from standard 'ILMergeOrder.txt' -->
|
||||
<ILMergeOrderFile></ILMergeOrderFile>
|
||||
|
||||
<!-- The strong key file name if not specified in the project -->
|
||||
<ILMergeKeyFile></ILMergeKeyFile>
|
||||
|
||||
<!-- The assembly version if differs for the version of the main assembly -->
|
||||
<ILMergeAssemblyVersion></ILMergeAssemblyVersion>
|
||||
|
||||
<!-- If True, all types from the merged assembly dependencies are marked as internal in the resulting file -->
|
||||
<ILMergeInternalize>false</ILMergeInternalize>
|
||||
|
||||
<!-- The file containing the list of type to exclude from internalization if different from ILMergeInternalizeExcludeList.txt (only relevant when "ILMergeInternalize" is true) -->
|
||||
<ILMergeInternalizeExcludeFile></ILMergeInternalizeExcludeFile>
|
||||
|
||||
<!-- Configures the /allowDup swith for ilmerge.exe. Use "*" or comma-separated type names -->
|
||||
<AllowDuplicateType></AllowDuplicateType>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
4
packages/MSBuild.AutoILMerge.Task.1.1.1/content/ILMergeOrder.txt
vendored
Normal file
4
packages/MSBuild.AutoILMerge.Task.1.1.1/content/ILMergeOrder.txt
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# this file contains the partial list of the merged assemblies in the merge order
|
||||
# you can fill it from the obj\CONFIG\PROJECT.ilmerge generated on every build
|
||||
# and finetune merge order to your satisfaction
|
||||
|
||||
4
packages/MSBuild.AutoILMerge.Task.1.1.1/content/content/ILMergeOrder.txt
vendored
Normal file
4
packages/MSBuild.AutoILMerge.Task.1.1.1/content/content/ILMergeOrder.txt
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# this file contains the partial list of the merged assemblies in the merge order
|
||||
# you can fill it from the obj\CONFIG\PROJECT.ilmerge generated on every build
|
||||
# and finetune merge order to your satisfaction
|
||||
|
||||
BIN
packages/MSBuild.AutoILMerge.Task.1.1.1/lib/net40/MSBuild.AutoILMerge.Task.dll
vendored
Normal file
BIN
packages/MSBuild.AutoILMerge.Task.1.1.1/lib/net40/MSBuild.AutoILMerge.Task.dll
vendored
Normal file
Binary file not shown.
223
packages/MSBuild.AutoILMerge.Task.1.1.1/lib/net40/MSBuild.AutoILMerge.Task.xml
vendored
Normal file
223
packages/MSBuild.AutoILMerge.Task.1.1.1/lib/net40/MSBuild.AutoILMerge.Task.xml
vendored
Normal file
|
|
@ -0,0 +1,223 @@
|
|||
<?xml version="1.0"?>
|
||||
<doc>
|
||||
<assembly>
|
||||
<name>MSBuild.AutoILMerge.Task</name>
|
||||
</assembly>
|
||||
<members>
|
||||
<member name="T:MSBuild.AutoILMerge.Task">
|
||||
<summary>
|
||||
The MSBuild task wrapping (in)famous ILMerge utility.
|
||||
The recommended way of embedding dependencies into the executable is now <b>Costura.Fody</b>,
|
||||
but <b>ILMerge is still unavoidable for some tasks, e.g. creation of database-stored MS CRM plug-ins.</b>
|
||||
Also, calling ILMerge from a batch file is sometimes hindered by the limitation on the total length of the command line...
|
||||
</summary>
|
||||
<remarks>
|
||||
See http://sedodream.com/PermaLink,guid,020fd1af-fb17-4fc9-8336-877c157eb2b4.aspx
|
||||
why we don't really know the project directory so you better make sure all paths are absolute.
|
||||
</remarks>
|
||||
</member>
|
||||
<member name="M:MSBuild.AutoILMerge.Task.#ctor">
|
||||
<summary>
|
||||
Initializes a new instance of the <see cref="T:MSBuild.AutoILMerge.Task"/> class.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.InputAssemblies">
|
||||
<summary>
|
||||
Gets or sets the item list containing the input assemblies.
|
||||
The first element of the list is considered to be the primary assembly.
|
||||
</summary>
|
||||
<remarks>Translates to ILMerge.SetInputAssemblies().</remarks>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.LibraryAssemblies">
|
||||
<summary>
|
||||
Gets or sets the item list containing the library assemblies
|
||||
that are not to be included in the merge. They are used to determine the
|
||||
<see cref="P:MSBuild.AutoILMerge.Task.LibraryPath"/> for the lack of a better method.
|
||||
With NuGet we can have hundreds potential library directories even if we filter them by platform
|
||||
(nontrivial task by itself).
|
||||
</summary>
|
||||
<remarks>Translates to ILMerge.SetSearchDirectories() eventually with a higher priority then <see cref="P:MSBuild.AutoILMerge.Task.LibraryPath"/>.
|
||||
TODO: copy to temp dir (use symlinks?), add dthis dir to the lib path.</remarks>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.LibraryPath">
|
||||
<summary>
|
||||
Gets or sets the item list containing the directories to be used to search for input assemblies.
|
||||
</summary>
|
||||
<remarks>Translates to ILMerge.SetSearchDirectories().</remarks>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.PackagesDir">
|
||||
<summary>
|
||||
Gets or sets the directory path to be considered an anchor point
|
||||
for library (usually packaged) assemblies. used to determine the default merge order.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.MergeOrderFile">
|
||||
<summary>
|
||||
Gets or sets the path and name of the file containing the merge order list.
|
||||
Assemblies (or, in the future, packages) are listed one per line;
|
||||
all names given before a line containing "..." are popped to the top of the merge order,
|
||||
all names after that line are pushed to the bottom. Assemblies not mentioned there stay where they were
|
||||
(most often the initial order was quite random).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.OutputFile">
|
||||
<summary>
|
||||
Gets or sets the path and name of the output file with the successfully merged result assembly.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.LogFile">
|
||||
<summary>
|
||||
Gets or sets the path and name of the log file.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.InternalizeExcludeFile">
|
||||
<summary>
|
||||
Gets or sets the path name of the file that will be used to identify types that are not to have their visibility modified.
|
||||
Used together with <see cref="P:MSBuild.AutoILMerge.Task.Internalize"/> flag. For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.AttributeFile">
|
||||
<summary>
|
||||
Gets or sets the path and name of the attribute assembly,
|
||||
an assembly that will be used to get all of the assembly-level attributes such as Culture, Version, etc.
|
||||
It will also be used to get the Win32 Resources from. It is mutually exclusive with the <see cref="P:MSBuild.AutoILMerge.Task.CopyAttributes"/> property
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.KeyFile">
|
||||
<summary>
|
||||
Gets or sets the path and name of the .snk file.
|
||||
The target assembly will be signed with its contents and will then have a strong name.
|
||||
It can be used with the <see langword="DelaySign"/> property to have the target assembly delay signed.
|
||||
This can be done even if the primary assembly was fully signed.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.AllowDuplicateType">
|
||||
<summary>
|
||||
Gets or sets of the type names that are allowed to be in duplicate.
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.AllowMultipleAssemblyLevelAttributes">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether, if the <see cref="P:MSBuild.AutoILMerge.Task.CopyAttributes"/> is also set,
|
||||
any assembly-level attributes names that have the same type are copied over into the target directory
|
||||
as long as the definition of the attribute type specifies that <b>AllowMultiple</b> is true.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.AllowZeroPeKind">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether, if an assembly's PeKind flag
|
||||
(this is the value of the field listed as .corflags in the Manifest) is zero
|
||||
it will be treated as if it was ILonly.
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.AllowWildCards">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether any wild cards in file names are expanded and all matching files will be used as input.
|
||||
Usually it is already done by MSBuild, but left here for completeness. For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.Closed">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether the "transitive closure"
|
||||
of the input assemblies is computed and added to the list of input assemblies.
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.CopyAttributes">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether the assembly level attributes of each input assembly are copied over into the target assembly.
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.DebugInfo">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether ILMerge creates a .pdb file for the output assembly
|
||||
and merges into it any .pdb files found for input assemblies.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.DelaySign">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether the target assembly will be delay signed.
|
||||
Only used together with <see cref="P:MSBuild.AutoILMerge.Task.KeyFile"/> option.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.FileAlignment">
|
||||
<summary>
|
||||
Gets or sets the file alignment used for the target assembly.
|
||||
The setter sets the value to the largest power of two that is no larger than the supplied argument, and is at least 512.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.Internalize">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether types in assemblies other than the primary assembly have their visibility modified.
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.XmlDocumentation">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether XML documentation files are merged
|
||||
to produce an XML documentation file for the target assembly.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.PublicKeyTokens">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether external assembly references in the manifest of the target assembly
|
||||
will use full public keys (false) or public key tokens (true). Default is <see langword="true"/>.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.ShouldLog">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether log messages are written. It is used in conjunction with the <see cref="P:MSBuild.AutoILMerge.Task.LogFile"/> property.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.StrongNameLost">
|
||||
<summary>
|
||||
Gets the value indicating whether after the merge the primary assembly had a strong name,
|
||||
but the target assembly does not. This can occur when an .snk file is not specified,
|
||||
or if something goes wrong trying to read its contents.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.TargetKind">
|
||||
<summary>
|
||||
Gets or sets the kind of the target assembly (a library, a console application or a Windows application).
|
||||
The possible values are (Dll, Exe, WinExe).
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.TargetPlatform">
|
||||
<summary>
|
||||
Gets or sets the version of the target framework. Default is "40".
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.UnionMerge">
|
||||
<summary>
|
||||
Gets or sets a value indicating whether types with the same name are all merged into a single type in the target assembly.
|
||||
For details, see ILMerge documentation.
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:MSBuild.AutoILMerge.Task.Version">
|
||||
<summary>
|
||||
Gets or sets the version number of the assembly in "6.2.1.3" format. Default is "1.0.0.0".
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:MSBuild.AutoILMerge.Task.Execute">
|
||||
<summary>
|
||||
The one and only.
|
||||
</summary>
|
||||
<returns>Success or failure.</returns>
|
||||
<remarks>use Dynamic. Segregate executable search in a separate class.</remarks>
|
||||
</member>
|
||||
<member name="M:MSBuild.AutoILMerge.Task.ReshuffleInputAssemblies">
|
||||
<summary>
|
||||
Reshuffles the input assembly list according to the file source and specified lead order (if any).
|
||||
In any case, project assemblies are loaded before library assemblies (library assemblies are all that lives
|
||||
under <see cref="P:MSBuild.AutoILMerge.Task.PackagesDir"/>).
|
||||
</summary>
|
||||
<returns>The reordered list of input assemblies. The master assembly will remain the first one.</returns>
|
||||
<remarks>TODO: use http://stackoverflow.com/questions/6653715/view-nuget-package-dependency-hierarchy
|
||||
to flatten package dependency graph.</remarks>
|
||||
</member>
|
||||
</members>
|
||||
</doc>
|
||||
BIN
packages/MSBuild.AutoILMerge.Task.1.1.1/tools/MSBuild.AutoILMerge.Task.dll
vendored
Normal file
BIN
packages/MSBuild.AutoILMerge.Task.1.1.1/tools/MSBuild.AutoILMerge.Task.dll
vendored
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user