diff --git a/.vs/GBAPokemonGameEditor/v15/.suo b/.vs/GBAPokemonGameEditor/v15/.suo
index 89b93cd..24ef520 100644
Binary files a/.vs/GBAPokemonGameEditor/v15/.suo and b/.vs/GBAPokemonGameEditor/v15/.suo differ
diff --git a/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide b/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide
index a76a1d7..34d89f4 100644
Binary files a/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide and b/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide differ
diff --git a/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-shm b/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-shm
index dc1ae29..1628891 100644
Binary files a/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-shm and b/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-shm differ
diff --git a/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-wal b/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-wal
index f4d5cf4..817df3c 100644
Binary files a/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-wal and b/.vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-wal differ
diff --git a/GBAPokemonGameEditor/CryFunctions.vb b/GBAPokemonGameEditor/CryFunctions.vb
index 41db3be..fe22f3d 100644
--- a/GBAPokemonGameEditor/CryFunctions.vb
+++ b/GBAPokemonGameEditor/CryFunctions.vb
@@ -363,115 +363,115 @@ Module CryFunctions
36, 49, -64, -49, -36, -25,
-16, -9, -4, -1}
- crytosave.Compressed = False
+ crytosave.Compressed = Pokemonedit.chkCompressed1.Checked
' copy cry data to be written
Dim data = New List(Of Byte)()
If crytosave.Compressed Then
- MsgBox("This should not be enabled!")
- End
+ 'MsgBox("This should not be enabled!")
+ 'End
- '' data is compressed in blocks of 1 + 0x20 bytes at a time
- '' first byte is normal signed PCM data
- '' following 0x20 bytes are compressed based on previous value
- '' (for a value not in lookup table, closest value will be chosen instead)
- ''Console.WriteLine("compressed");
+ ' data is compressed in blocks of 1 + 0x20 bytes at a time
+ ' first byte is normal signed PCM data
+ ' following 0x20 bytes are compressed based on previous value
+ ' (for a value not in lookup table, closest value will be chosen instead)
+ 'Console.WriteLine("compressed");
- '' each block has 0x40 samples
- 'Dim blockCount = crytosave.Data.Length / &H40
- 'If crytosave.Data.Length Mod &H40 > 0 Then
- ' blockCount += 1
- 'End If
+ ' each block has 0x40 samples
+ Dim blockCount = crytosave.Data.Length / &H40
+ If crytosave.Data.Length Mod &H40 > 0 Then
+ blockCount += 1
+ End If
- '' truncates the length of the last block
- '' so we don't waste space
- 'Dim lastBlockSize = crytosave.Data.Length - crytosave.Data.Length / &H40 * &H40
- 'If lastBlockSize = 0 Then
- ' lastBlockSize = &H21
- 'Else
- ' lastBlockSize = 1 + (lastBlockSize / 2) + (If(lastBlockSize Mod 2 = 0, 0, 1))
- 'End If
+ ' truncates the length of the last block
+ ' so we don't waste space
+ Dim lastBlockSize = crytosave.Data.Length - crytosave.Data.Length / &H40 * &H40
+ If lastBlockSize = 0 Then
+ lastBlockSize = &H21
+ Else
+ lastBlockSize = 1 + (lastBlockSize / 2) + (If(lastBlockSize Mod 2 = 0, 0, 1))
+ End If
- 'Dim blocks = New Byte(blockCount - 1)() {}
- 'For n As Integer = 0 To blockCount - 1
- ' ' create new block
- ' If n < blockCount - 1 Then
- ' blocks(n) = New Byte(32) {}
- ' Else
- ' blocks(n) = New Byte(lastBlockSize - 1) {}
- ' End If
+ Dim blocks = New Byte(blockCount - 1)() {}
+ For n As Integer = 0 To blockCount - 1
+ ' create new block
+ If n < blockCount - 1 Then
+ blocks(n) = New Byte(32) {}
+ Else
+ blocks(n) = New Byte(lastBlockSize - 1) {}
+ End If
- ' Dim i As Integer = n * &H40
- ' Dim k As Integer = 0
+ Dim i As Integer = n * &H40
+ Dim k As Integer = 0
- ' If i < crytosave.Data.Length Then
- ' ' set first value
- ' blocks(n)(k) = BitConverter.GetBytes(crytosave.Data(i))(0)
- ' End If
+ If i < crytosave.Data.Length Then
+ ' set first value
+ blocks(n)(k) = BitConverter.GetBytes(crytosave.Data(i))(0)
+ End If
- ' k = k + 1
+ k = k + 1
- ' Dim pcm As SByte
+ Dim pcm As SByte
- ' If i < crytosave.Data.Length Then
+ If i < crytosave.Data.Length Then
- ' pcm = crytosave.Data(i)
+ pcm = crytosave.Data(i)
- ' End If
+ End If
- ' i = i + 1
+ i = i + 1
- ' Dim j As Integer = 1
- ' While j < &H40 And i < crytosave.Data.Length
- ' ' get current sample
- ' Dim sample As SByte = crytosave.Data(i)
+ Dim j As Integer = 1
+ While j < &H40 And i < crytosave.Data.Length
+ ' get current sample
+ Dim sample As SByte = crytosave.Data(i)
- ' i = i + 1
+ i = i + 1
- ' ' difference between previous sample and this
- ' Dim diff As Integer = sample - pcm
+ ' difference between previous sample and this
+ Dim diff As Integer = sample - pcm
- ' ' check for a perfect match in lookup table
- ' Dim lookupI = -1
- ' For x As Integer = 0 To 15
- ' If lookup(x) = diff Then
- ' lookupI = x
- ' Exit For
- ' End If
- ' Next
+ ' check for a perfect match in lookup table
+ Dim lookupI = -1
+ For x As Integer = 0 To 15
+ If lookup(x) = diff Then
+ lookupI = x
+ Exit For
+ End If
+ Next
- ' ' search for the closest match in the table
- ' If lookupI = -1 Then
- ' Dim bestDiff As Integer = 255
- ' For x As Integer = 0 To 15
- ' If Math.Abs(CInt(lookup(x)) - diff) < bestDiff Then
- ' lookupI = x
- ' bestDiff = Math.Abs(lookup(x) - diff)
- ' End If
- ' Next
- ' End If
+ ' search for the closest match in the table
+ If lookupI = -1 Then
+ Dim bestDiff As Integer = 255
+ For x As Integer = 0 To 15
+ If Math.Abs(CInt(lookup(x)) - diff) < bestDiff Then
+ lookupI = x
+ bestDiff = Math.Abs(lookup(x) - diff)
+ End If
+ Next
+ End If
- ' ' set value in block
- ' ' on an odd value, increase position in block
- ' If j Mod 2 = 0 Then
- ' blocks(n)(k) = blocks(n)(k) Or CByte(lookupI << 4)
- ' Else
- ' blocks(n)(k) = blocks(n)(k) Or CByte(lookupI)
+ ' set value in block
+ ' on an odd value, increase position in block
+ If j Mod 2 = 0 Then
+ blocks(n)(k) = blocks(n)(k) Or CByte(lookupI << 4)
+ Else
+ blocks(n)(k) = blocks(n)(k) Or CByte(lookupI)
- ' k = k + 1
+ k = k + 1
- ' End If
+ End If
- ' ' set previous
- ' pcm = sample
- ' j += 1
- ' End While
- 'Next
+ ' set previous
+ pcm = sample
+ j += 1
+ End While
+ Next
- 'For n As Integer = 0 To blockCount - 1
- ' data.AddRange(blocks(n))
- 'Next
+ For n As Integer = 0 To blockCount - 1
+ data.AddRange(blocks(n))
+ Next
Else
' uncompressed, copy directly to data
'Console.WriteLine("uncompressed");
@@ -568,13 +568,13 @@ Module CryFunctions
36, 49, -64, -49, -36, -25,
-16, -9, -4, -1}
- crytosave.Compressed = False
+ crytosave.Compressed = Pokemonedit.imptCompChk.Checked
' copy cry data to be written
Dim data = New List(Of Byte)()
- If 0 Then
+ If crytosave.Compressed Then
'MsgBox("This should not be enabled!")
@@ -638,7 +638,7 @@ Module CryFunctions
i = i + 1
' difference between previous sample and this
- Dim diff As Integer = sample - pcm
+ Dim diff As Integer = Int32.Parse(sample) - Int32.Parse(pcm)
' check for a perfect match in lookup table
Dim lookupI = -1
@@ -653,7 +653,7 @@ Module CryFunctions
If lookupI = -1 Then
Dim bestDiff As Integer = 255
For x As Integer = 0 To 15
- If Math.Abs(CInt(lookup(x)) - diff) < bestDiff Then
+ If Math.Abs(lookup(x) - diff) < bestDiff Then
lookupI = x
bestDiff = Math.Abs(lookup(x) - diff)
End If
@@ -690,7 +690,7 @@ Module CryFunctions
End If
' set new cry offset
- crytosave.Offset = SearchFreeSpaceFourAligned(LoadedROM, &HFF, data.Count, "&H" & GetString(GetINIFileLocation(), header, "StartSearchingForSpaceOffset", "800000"))
+ crytosave.Offset = SearchFreeSpaceFourAligned(LoadedROM, &HFF, data.Count + 16, "&H" & GetString(GetINIFileLocation(), header, "StartSearchingForSpaceOffset", "800000"))
' write cry
@@ -698,7 +698,7 @@ Module CryFunctions
WriteHEX(LoadedROM, crytosave.Offset + 2, ReverseHEX(VB.Right("0000" & CUShort(If(crytosave.Looped, &H4000, 0)), 4)))
WriteHEX(LoadedROM, crytosave.Offset + 4, ReverseHEX(VB.Right("00000000" & Hex(crytosave.SampleRate << 10), 8)))
WriteHEX(LoadedROM, crytosave.Offset + 8, ReverseHEX(VB.Right("00000000" & Hex(crytosave.LoopStart), 8)))
- WriteHEX(LoadedROM, crytosave.Offset + 12, ReverseHEX(VB.Right("00000000" & Hex(crytosave.Data.Length - 2), 8)))
+ WriteHEX(LoadedROM, crytosave.Offset + 12, ReverseHEX(VB.Right("00000000" & Hex(crytosave.Data.Length - 1), 8)))
Dim tempbuff As String = ByteArrayToHexString(data.ToArray)
@@ -707,18 +707,18 @@ Module CryFunctions
' write cry table entry
- WriteHEX(LoadedROM, cryTable + (crytosave.Index * 12), ReverseHEX(If(crytosave.Compressed, "00003C20", "00003C00")))
- WriteHEX(LoadedROM, cryTable + (crytosave.Index * 12) + 4, ReverseHEX(VB.Right("00000000" & Hex(crytosave.Offset + &H8000000), 8)))
- WriteHEX(LoadedROM, cryTable + (crytosave.Index * 12) + 8, "FF00FF")
+ WriteHEX(LoadedROM, cryTable + ((crytosave.Index - 1) * 12), ReverseHEX(If(crytosave.Compressed, "00003C20", "00003C00")))
+ WriteHEX(LoadedROM, cryTable + ((crytosave.Index - 1) * 12) + 4, ReverseHEX(VB.Right("00000000" & Hex(crytosave.Offset + &H8000000), 8)))
+ WriteHEX(LoadedROM, cryTable + ((crytosave.Index - 1) * 12) + 8, "FF00FF")
- WriteHEX(LoadedROM, growlTable + (crytosave.Index * 12), ReverseHEX(If(crytosave.Compressed, "00003C30", "00003C00")))
- WriteHEX(LoadedROM, growlTable + (crytosave.Index * 12) + 4, ReverseHEX(VB.Right("00000000" & Hex(crytosave.Offset + &H8000000), 8)))
- WriteHEX(LoadedROM, growlTable + (crytosave.Index * 12) + 8, "FF00FF")
+ WriteHEX(LoadedROM, growlTable + ((crytosave.Index - 1) * 12), ReverseHEX(If(crytosave.Compressed, "00003C30", "00003C00")))
+ WriteHEX(LoadedROM, growlTable + ((crytosave.Index - 1) * 12) + 4, ReverseHEX(VB.Right("00000000" & Hex(crytosave.Offset + &H8000000), 8)))
+ WriteHEX(LoadedROM, growlTable + ((crytosave.Index - 1) * 12) + 8, "FF00FF")
If crytosave.Index > 276 Then
Dim offset As Integer = Int32.Parse((GetString(GetINIFileLocation(), header, "CryConversionTable", "")), System.Globalization.NumberStyles.HexNumber)
- WriteHEX(LoadedROM, ((offset)) + ((crytosave.Index - 277) * 2), ReverseHEX(VB.Right("0000" & Hex(crytosave.Index), 4)))
+ WriteHEX(LoadedROM, ((offset)) + ((crytosave.Index - 277) * 2), ReverseHEX(VB.Right("0000" & Hex(crytosave.Index - 1), 4)))
End If
diff --git a/GBAPokemonGameEditor/Pokemonedit.Designer.vb b/GBAPokemonGameEditor/Pokemonedit.Designer.vb
index 6a71694..19c40fd 100644
--- a/GBAPokemonGameEditor/Pokemonedit.Designer.vb
+++ b/GBAPokemonGameEditor/Pokemonedit.Designer.vb
@@ -229,8 +229,6 @@ Partial Class Pokemonedit
Me.Clr1 = New System.Windows.Forms.ComboBox()
Me.TabPage6 = New System.Windows.Forms.TabPage()
Me.GroupBox35 = New System.Windows.Forms.GroupBox()
- Me.Button35 = New System.Windows.Forms.Button()
- Me.Button36 = New System.Windows.Forms.Button()
Me.Button37 = New System.Windows.Forms.Button()
Me.Panel2 = New System.Windows.Forms.Panel()
Me.pSample2 = New System.Windows.Forms.PictureBox()
@@ -287,6 +285,7 @@ Partial Class Pokemonedit
Me.Button39 = New System.Windows.Forms.Button()
Me.Button41 = New System.Windows.Forms.Button()
Me.CheckBox1 = New System.Windows.Forms.CheckBox()
+ Me.imptCompChk = New System.Windows.Forms.CheckBox()
Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout()
Me.GroupBox26.SuspendLayout()
@@ -2570,6 +2569,9 @@ Partial Class Pokemonedit
'
'TabPage6
'
+ Me.TabPage6.Controls.Add(Me.Button34)
+ Me.TabPage6.Controls.Add(Me.imptCompChk)
+ Me.TabPage6.Controls.Add(Me.Button33)
Me.TabPage6.Controls.Add(Me.GroupBox35)
Me.TabPage6.Controls.Add(Me.GroupBox34)
Me.TabPage6.Controls.Add(Me.GroupBox21)
@@ -2584,8 +2586,6 @@ Partial Class Pokemonedit
'
'GroupBox35
'
- Me.GroupBox35.Controls.Add(Me.Button35)
- Me.GroupBox35.Controls.Add(Me.Button36)
Me.GroupBox35.Controls.Add(Me.Button37)
Me.GroupBox35.Controls.Add(Me.Panel2)
Me.GroupBox35.Controls.Add(Me.chkCompressed2)
@@ -2605,27 +2605,6 @@ Partial Class Pokemonedit
Me.GroupBox35.TabStop = False
Me.GroupBox35.Text = "Growl Cry"
'
- 'Button35
- '
- Me.Button35.Location = New System.Drawing.Point(428, 265)
- Me.Button35.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
- Me.Button35.Name = "Button35"
- Me.Button35.Size = New System.Drawing.Size(84, 41)
- Me.Button35.TabIndex = 30
- Me.Button35.Text = "Export"
- Me.Button35.UseVisualStyleBackColor = True
- '
- 'Button36
- '
- Me.Button36.Enabled = False
- Me.Button36.Location = New System.Drawing.Point(336, 264)
- Me.Button36.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
- Me.Button36.Name = "Button36"
- Me.Button36.Size = New System.Drawing.Size(84, 41)
- Me.Button36.TabIndex = 29
- Me.Button36.Text = "Import"
- Me.Button36.UseVisualStyleBackColor = True
- '
'Button37
'
Me.Button37.Location = New System.Drawing.Point(245, 265)
@@ -2734,8 +2713,6 @@ Partial Class Pokemonedit
'
'GroupBox34
'
- Me.GroupBox34.Controls.Add(Me.Button34)
- Me.GroupBox34.Controls.Add(Me.Button33)
Me.GroupBox34.Controls.Add(Me.Button32)
Me.GroupBox34.Controls.Add(Me.chkCompressed1)
Me.GroupBox34.Controls.Add(Me.panel1)
@@ -2757,7 +2734,7 @@ Partial Class Pokemonedit
'
'Button34
'
- Me.Button34.Location = New System.Drawing.Point(428, 264)
+ Me.Button34.Location = New System.Drawing.Point(776, 300)
Me.Button34.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Button34.Name = "Button34"
Me.Button34.Size = New System.Drawing.Size(84, 41)
@@ -2767,7 +2744,7 @@ Partial Class Pokemonedit
'
'Button33
'
- Me.Button33.Location = New System.Drawing.Point(336, 264)
+ Me.Button33.Location = New System.Drawing.Point(776, 254)
Me.Button33.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Button33.Name = "Button33"
Me.Button33.Size = New System.Drawing.Size(84, 41)
@@ -2788,7 +2765,6 @@ Partial Class Pokemonedit
'chkCompressed1
'
Me.chkCompressed1.AutoSize = True
- Me.chkCompressed1.Enabled = False
Me.chkCompressed1.Location = New System.Drawing.Point(26, 230)
Me.chkCompressed1.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.chkCompressed1.Name = "chkCompressed1"
@@ -3173,6 +3149,17 @@ Partial Class Pokemonedit
Me.CheckBox1.Text = "Efficient Imports"
Me.CheckBox1.UseVisualStyleBackColor = True
'
+ 'imptCompChk
+ '
+ Me.imptCompChk.AutoSize = True
+ Me.imptCompChk.Location = New System.Drawing.Point(777, 227)
+ Me.imptCompChk.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
+ Me.imptCompChk.Name = "imptCompChk"
+ Me.imptCompChk.Size = New System.Drawing.Size(125, 24)
+ Me.imptCompChk.TabIndex = 28
+ Me.imptCompChk.Text = "Compressed"
+ Me.imptCompChk.UseVisualStyleBackColor = True
+ '
'Pokemonedit
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 20.0!)
@@ -3283,6 +3270,7 @@ Partial Class Pokemonedit
Me.GroupBox28.PerformLayout()
Me.GroupBox2.ResumeLayout(False)
Me.TabPage6.ResumeLayout(False)
+ Me.TabPage6.PerformLayout()
Me.GroupBox35.ResumeLayout(False)
Me.GroupBox35.PerformLayout()
Me.Panel2.ResumeLayout(False)
@@ -3543,12 +3531,10 @@ Partial Class Pokemonedit
Private WithEvents panel1 As System.Windows.Forms.Panel
Private WithEvents pSample As System.Windows.Forms.PictureBox
Private WithEvents chkCompressed2 As System.Windows.Forms.CheckBox
- Private WithEvents chkCompressed1 As System.Windows.Forms.CheckBox
+ Friend WithEvents chkCompressed1 As System.Windows.Forms.CheckBox
Private WithEvents Panel2 As System.Windows.Forms.Panel
Private WithEvents pSample2 As System.Windows.Forms.PictureBox
Friend WithEvents Button32 As System.Windows.Forms.Button
- Friend WithEvents Button35 As System.Windows.Forms.Button
- Friend WithEvents Button36 As System.Windows.Forms.Button
Friend WithEvents Button37 As System.Windows.Forms.Button
Friend WithEvents Button34 As System.Windows.Forms.Button
Friend WithEvents Button33 As System.Windows.Forms.Button
@@ -3567,4 +3553,5 @@ Partial Class Pokemonedit
Friend WithEvents Button41 As Button
Friend WithEvents CheckBox1 As CheckBox
Friend WithEvents Label61 As Label
+ Friend WithEvents imptCompChk As CheckBox
End Class
diff --git a/GBAPokemonGameEditor/Pokemonedit.vb b/GBAPokemonGameEditor/Pokemonedit.vb
index b603434..d54ea22 100644
--- a/GBAPokemonGameEditor/Pokemonedit.vb
+++ b/GBAPokemonGameEditor/Pokemonedit.vb
@@ -3871,7 +3871,7 @@ Public Class Pokemonedit
End If
End Sub
- Private Sub Button35_Click(sender As Object, e As EventArgs) Handles Button35.Click
+ Private Sub Button35_Click(sender As Object, e As EventArgs)
SaveFileDialog.FileName = (PKMNames.SelectedIndex + 1) & ".wav"
'SaveFileDialog.CheckFileExists = True
@@ -4410,4 +4410,7 @@ Public Class Pokemonedit
MenuItem.Update()
End Sub
+ Private Sub chkCompressed1_CheckedChanged(sender As Object, e As EventArgs) Handles chkCompressed1.CheckedChanged
+
+ End Sub
End Class
\ No newline at end of file
diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application
index ffdabab..46a1613 100644
--- a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application
+++ b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application
@@ -16,7 +16,7 @@
- oZKsscV6XweG+loQmZbBDiZO0BQCP7F/TfwY0asCaA8=
+ qlWgrVBTpVw4hLqEVRImdygkQNID/FbqnREvHRkh3fg=
diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe
index 8d1024a..76b4cc0 100644
Binary files a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe and b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe differ
diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest
index 480f07f..75e05ad 100644
--- a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest
+++ b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest
@@ -43,14 +43,14 @@
-
+
- FERwyly55XAx5w762wu7/jegdIJ2KFH+zg+3gAm1/30=
+ PnJ0OCLYEgr3gDHSY6A9cKr5cJsIbrLg0fS2PYuUlVU=
diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb
index 87d39c0..a05245e 100644
Binary files a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb and b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb differ
diff --git a/GBAPokemonGameEditor/bin/Debug/app.publish/PokemonGameEditor.exe b/GBAPokemonGameEditor/bin/Debug/app.publish/PokemonGameEditor.exe
index 8d1024a..76b4cc0 100644
Binary files a/GBAPokemonGameEditor/bin/Debug/app.publish/PokemonGameEditor.exe and b/GBAPokemonGameEditor/bin/Debug/app.publish/PokemonGameEditor.exe differ
diff --git a/GBAPokemonGameEditor/bin/Debug/errors.txt b/GBAPokemonGameEditor/bin/Debug/errors.txt
index 2daae87..40d278b 100644
--- a/GBAPokemonGameEditor/bin/Debug/errors.txt
+++ b/GBAPokemonGameEditor/bin/Debug/errors.txt
@@ -37,3 +37,139 @@ Error! IconPointerTable2 is missing for ROM BPRE!
Error! IconPointerTable2 is missing for ROM BPRE!
Error! IconPointerTable2 is missing for ROM BPRE!
Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPointerTable2 is missing for ROM BPEE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPalCount is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
+Error! IconPointerTable2 is missing for ROM BPRE!
diff --git a/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.CoreCompileInputs.cache b/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.CoreCompileInputs.cache
index e23a6d7..eb55a5f 100644
--- a/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.CoreCompileInputs.cache
+++ b/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.CoreCompileInputs.cache
@@ -1 +1 @@
-3c28dccb3590a299f877aecd8a64b5acf689d462
+ef0dc9cc3316fe1b4494e557fc7828a03aa4043f
diff --git a/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache b/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache
index 9a04cb8..447bffb 100644
Binary files a/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache and b/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache differ
diff --git a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application
index ffdabab..46a1613 100644
--- a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application
+++ b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application
@@ -16,7 +16,7 @@
- oZKsscV6XweG+loQmZbBDiZO0BQCP7F/TfwY0asCaA8=
+ qlWgrVBTpVw4hLqEVRImdygkQNID/FbqnREvHRkh3fg=
diff --git a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe
index 8d1024a..76b4cc0 100644
Binary files a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe and b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe differ
diff --git a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest
index 480f07f..75e05ad 100644
--- a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest
+++ b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest
@@ -43,14 +43,14 @@
-
+
- FERwyly55XAx5w762wu7/jegdIJ2KFH+zg+3gAm1/30=
+ PnJ0OCLYEgr3gDHSY6A9cKr5cJsIbrLg0fS2PYuUlVU=
diff --git a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb
index 87d39c0..a05245e 100644
Binary files a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb and b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb differ