diff --git a/GBAPokemonGameEditor.v12.suo b/GBAPokemonGameEditor.v12.suo index 0654977..999e930 100644 Binary files a/GBAPokemonGameEditor.v12.suo and b/GBAPokemonGameEditor.v12.suo differ diff --git a/GBAPokemonGameEditor/CryFunctions.vb b/GBAPokemonGameEditor/CryFunctions.vb index 6bc7557..1478f70 100644 --- a/GBAPokemonGameEditor/CryFunctions.vb +++ b/GBAPokemonGameEditor/CryFunctions.vb @@ -318,114 +318,120 @@ Module CryFunctions 36, 49, -64, -49, -36, -25, _ -16, -9, -4, -1} + crytosave.Compressed = False + ' copy cry data to be written Dim data = New List(Of Byte)() If crytosave.Compressed Then - ' 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 + MsgBox("This should not be enabled!") + End - ' 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 + '' 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"); - 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 + '' each block has 0x40 samples + 'Dim blockCount = crytosave.Data.Length / &H40 + 'If crytosave.Data.Length Mod &H40 > 0 Then + ' blockCount += 1 + 'End If - Dim i As Integer = n * &H40 - Dim k As Integer = 0 + '' 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 - If i < crytosave.Data.Length Then - ' set first value - blocks(n)(k) = BitConverter.GetBytes(crytosave.Data(i))(0) - 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 - k = k + 1 + ' Dim i As Integer = n * &H40 + ' Dim k As Integer = 0 - Dim pcm As SByte + ' 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 + ' k = k + 1 - pcm = crytosave.Data(i) + ' Dim pcm As SByte - End If + ' If i < crytosave.Data.Length Then - i = i + 1 + ' pcm = 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) + ' End If - i = i + 1 + ' i = i + 1 - ' difference between previous sample and this - Dim diff As Integer = sample - pcm + ' Dim j As Integer = 1 + ' While j < &H40 And i < crytosave.Data.Length + ' ' get current sample + ' Dim sample As SByte = crytosave.Data(i) - ' 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 + ' i = i + 1 - ' 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 + ' ' difference between previous sample and this + ' Dim diff As Integer = sample - pcm - ' 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) + ' ' 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 - k = k + 1 + ' ' 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 - 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 previous - pcm = sample - j += 1 - End While - Next + ' k = k + 1 - For n As Integer = 0 To blockCount - 1 - data.AddRange(blocks(n)) - Next + ' End If + + ' ' set previous + ' pcm = sample + ' j += 1 + ' End While + 'Next + + 'For n As Integer = 0 To blockCount - 1 + ' data.AddRange(blocks(n)) + 'Next Else ' uncompressed, copy directly to data 'Console.WriteLine("uncompressed"); For Each s As SByte In crytosave.Data - data.Add(CByte(s)) + data.Add(CByte(s And &HFF)) Next End If @@ -468,15 +474,21 @@ Module CryFunctions WriteHEX(LoadedROM, crytosave.Offset + 8, ReverseHEX(VB.Right("00000000" & (crytosave.LoopStart), 8))) WriteHEX(LoadedROM, crytosave.Offset + 12, ReverseHEX(VB.Right("00000000" & (crytosave.Data.Length - 1), 8))) + 'WriteHEX(LoadedROM, crytosave.Offset, ReverseHEX(VB.Right("0000" & CUShort(If(crytosave.Compressed, 1, 0)), 4))) + '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" & (crytosave.SampleRate << 10), 8))) + 'WriteHEX(LoadedROM, crytosave.Offset + 8, ReverseHEX(VB.Right("00000000" & (crytosave.LoopStart), 8))) + 'WriteHEX(LoadedROM, crytosave.Offset + 12, ReverseHEX(VB.Right("00000000" & (crytosave.Data.Length - 1), 8))) + Dim tempbuff As String = ByteArrayToHexString(data.ToArray) WriteHEX(LoadedROM, crytosave.Offset + 16, tempbuff) ' 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), 8))) - WriteHEX(LoadedROM, cryTable + (crytosave.Index * 12) + 8, "FF00FF") + '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), 8))) + 'WriteHEX(LoadedROM, cryTable + (crytosave.Index * 12) + 8, "FF00FF") 'rom.WriteUInt16(CUShort(If(Cry.Compressed, 1, 0))) diff --git a/GBAPokemonGameEditor/ExportDataFunctions.vb b/GBAPokemonGameEditor/ExportDataFunctions.vb index e6b515e..92565d0 100644 --- a/GBAPokemonGameEditor/ExportDataFunctions.vb +++ b/GBAPokemonGameEditor/ExportDataFunctions.vb @@ -43,6 +43,10 @@ Module ExportDataFunctions Dim Offset_2 As String = "" Dim PokedexType As String = "" + Dim FrontAnimationTable As String = "" + Dim BackAnimTable As String = "" + Dim AnimDelayTable As String = "" + 'Fill vars with proper data BaseStats = ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "PokemonData", "")), System.Globalization.NumberStyles.HexNumber)) + (PokemonIndex * 28), 28) @@ -251,6 +255,13 @@ Module ExportDataFunctions PokedexDescription = Pointer1Description FileClose(FileNum) + + + FrontAnimationTable = (Int32.Parse(((ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "FrontAnimationTable", "")), System.Globalization.NumberStyles.HexNumber)) + (PokemonIndex - 1), 1))), System.Globalization.NumberStyles.HexNumber)) + BackAnimTable = (Int32.Parse(((ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "BackAnimTable", "")), System.Globalization.NumberStyles.HexNumber)) + (1) + (PokemonIndex - 1), 1))), System.Globalization.NumberStyles.HexNumber)) + AnimDelayTable = (Int32.Parse(((ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "AnimDelayTable", "")), System.Globalization.NumberStyles.HexNumber)) + (PokemonIndex - 1), 1))), System.Globalization.NumberStyles.HexNumber)) + + End If PokedexType = GetPokedexTypeName(NationalDexNumber) @@ -279,6 +290,12 @@ Module ExportDataFunctions WriteString(INIFileName, "Pokemon", "MoveTutorCompatibility", MoveTutorCompatibility) End If + If header2 = "BPE" Then + WriteString(INIFileName, "Pokemon", "FrontAnimationTable", FrontAnimationTable) + WriteString(INIFileName, "Pokemon", "BackAnimTable", BackAnimTable) + WriteString(INIFileName, "Pokemon", "AnimDelayTable", AnimDelayTable) + End If + WriteString(INIFileName, "Pokemon", "TMHMCompatibility", TMHMCompatibility) WriteString(INIFileName, "Pokemon", "NationalDexNumber", NationalDexNumber) diff --git a/GBAPokemonGameEditor/ImportDataFunctions.vb b/GBAPokemonGameEditor/ImportDataFunctions.vb index da95564..5ec99cc 100644 --- a/GBAPokemonGameEditor/ImportDataFunctions.vb +++ b/GBAPokemonGameEditor/ImportDataFunctions.vb @@ -51,6 +51,10 @@ Module ImportDataFunctions Dim Offset_2 As String = "" Dim PokedexType As String = "" + Dim FrontAnimationTable As String = "" + Dim BackAnimTable As String = "" + Dim AnimDelayTable As String = "" + 'Load data @@ -98,6 +102,11 @@ Module ImportDataFunctions ElseIf header2 = "BPR" Or header2 = "BPG" Then SkipVar = "36" ElseIf header2 = "BPE" Then + + FrontAnimationTable = GetString(INIFileName, "Pokemon", "FrontAnimationTable", "1") + BackAnimTable = GetString(INIFileName, "Pokemon", "BackAnimTable", "1") + AnimDelayTable = GetString(INIFileName, "Pokemon", "AnimDelayTable", "1") + SkipVar = "32" End If @@ -200,6 +209,9 @@ Module ImportDataFunctions WriteHEX(LoadedROM, Int32.Parse((GetString(GetINIFileLocation(), header, "PokedexData", "")), System.Globalization.NumberStyles.HexNumber) + 4 + 12 + (NationalDexNumber * SkipVar), ReverseHEX(Hex(Val("&H" & (Hex(PokedexDescriptionOff))) + &H8000000))) + WriteHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "FrontAnimationTable", "")), System.Globalization.NumberStyles.HexNumber)) + (PokemonIndex - 1), (Hex(Val(FrontAnimationTable)))) + WriteHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "BackAnimTable", "")), System.Globalization.NumberStyles.HexNumber)) + (1) + (PokemonIndex - 1), (Hex(Val(BackAnimTable)))) + WriteHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "AnimDelayTable", "")), System.Globalization.NumberStyles.HexNumber)) + (PokemonIndex - 1), (Hex(Val(AnimDelayTable)))) End If diff --git a/GBAPokemonGameEditor/Pokemonedit.Designer.vb b/GBAPokemonGameEditor/Pokemonedit.Designer.vb index 0bcd96b..20c1237 100644 --- a/GBAPokemonGameEditor/Pokemonedit.Designer.vb +++ b/GBAPokemonGameEditor/Pokemonedit.Designer.vb @@ -209,6 +209,8 @@ Partial Class Pokemonedit Me.Label35 = New System.Windows.Forms.Label() Me.Label36 = New System.Windows.Forms.Label() Me.GroupBox28 = New System.Windows.Forms.GroupBox() + Me.TextBox7 = New System.Windows.Forms.TextBox() + Me.Label57 = New System.Windows.Forms.Label() Me.TextBox4 = New System.Windows.Forms.TextBox() Me.TextBox3 = New System.Windows.Forms.TextBox() Me.Button16 = New System.Windows.Forms.Button() @@ -274,8 +276,13 @@ Partial Class Pokemonedit Me.Button30 = New System.Windows.Forms.Button() Me.Button38 = New System.Windows.Forms.Button() Me.Button39 = New System.Windows.Forms.Button() - Me.TextBox7 = New System.Windows.Forms.TextBox() - Me.Label57 = New System.Windows.Forms.Label() + Me.Label58 = New System.Windows.Forms.Label() + Me.TextBox8 = New System.Windows.Forms.TextBox() + Me.TextBox9 = New System.Windows.Forms.TextBox() + Me.Label59 = New System.Windows.Forms.Label() + Me.TextBox10 = New System.Windows.Forms.TextBox() + Me.Label60 = New System.Windows.Forms.Label() + Me.AniSavBttn = New System.Windows.Forms.Button() Me.TabControl1.SuspendLayout() Me.TabPage1.SuspendLayout() Me.GroupBox26.SuspendLayout() @@ -381,7 +388,7 @@ Partial Class Pokemonedit 'GroupBox26 ' Me.GroupBox26.Controls.Add(Me.ItmAnmtn) - Me.GroupBox26.Location = New System.Drawing.Point(599, 249) + Me.GroupBox26.Location = New System.Drawing.Point(599, 489) Me.GroupBox26.Margin = New System.Windows.Forms.Padding(4) Me.GroupBox26.Name = "GroupBox26" Me.GroupBox26.Padding = New System.Windows.Forms.Padding(4) @@ -514,11 +521,11 @@ Partial Class Pokemonedit Me.GroupBox20.Controls.Add(Me.PictureBox1) Me.GroupBox20.Controls.Add(Me.Button5) Me.GroupBox20.Controls.Add(Me.FootPrintPointer) - Me.GroupBox20.Location = New System.Drawing.Point(599, 318) + Me.GroupBox20.Location = New System.Drawing.Point(8, 322) Me.GroupBox20.Margin = New System.Windows.Forms.Padding(4) Me.GroupBox20.Name = "GroupBox20" Me.GroupBox20.Padding = New System.Windows.Forms.Padding(4) - Me.GroupBox20.Size = New System.Drawing.Size(196, 153) + Me.GroupBox20.Size = New System.Drawing.Size(200, 153) Me.GroupBox20.TabIndex = 4 Me.GroupBox20.TabStop = False Me.GroupBox20.Text = "FootPrint" @@ -648,6 +655,13 @@ Partial Class Pokemonedit ' 'GroupBox15 ' + Me.GroupBox15.Controls.Add(Me.AniSavBttn) + Me.GroupBox15.Controls.Add(Me.TextBox10) + Me.GroupBox15.Controls.Add(Me.Label60) + Me.GroupBox15.Controls.Add(Me.TextBox9) + Me.GroupBox15.Controls.Add(Me.Label59) + Me.GroupBox15.Controls.Add(Me.TextBox8) + Me.GroupBox15.Controls.Add(Me.Label58) Me.GroupBox15.Controls.Add(Me.AniPic2) Me.GroupBox15.Controls.Add(Me.AniPic) Me.GroupBox15.Controls.Add(Me.Button2) @@ -656,7 +670,7 @@ Partial Class Pokemonedit Me.GroupBox15.Margin = New System.Windows.Forms.Padding(4) Me.GroupBox15.Name = "GroupBox15" Me.GroupBox15.Padding = New System.Windows.Forms.Padding(4) - Me.GroupBox15.Size = New System.Drawing.Size(212, 233) + Me.GroupBox15.Size = New System.Drawing.Size(212, 378) Me.GroupBox15.TabIndex = 2 Me.GroupBox15.TabStop = False Me.GroupBox15.Text = "Animation (Emerald Only)" @@ -2385,6 +2399,24 @@ Partial Class Pokemonedit Me.GroupBox28.TabStop = False Me.GroupBox28.Text = "Pokedex Order" ' + 'TextBox7 + ' + Me.TextBox7.Location = New System.Drawing.Point(125, 91) + Me.TextBox7.Margin = New System.Windows.Forms.Padding(4) + Me.TextBox7.Name = "TextBox7" + Me.TextBox7.Size = New System.Drawing.Size(44, 22) + Me.TextBox7.TabIndex = 6 + ' + 'Label57 + ' + Me.Label57.AutoSize = True + Me.Label57.Location = New System.Drawing.Point(24, 96) + Me.Label57.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) + Me.Label57.Name = "Label57" + Me.Label57.Size = New System.Drawing.Size(96, 17) + Me.Label57.TabIndex = 5 + Me.Label57.Text = "Hoenn to Nat:" + ' 'TextBox4 ' Me.TextBox4.Location = New System.Drawing.Point(125, 58) @@ -3024,23 +3056,62 @@ Partial Class Pokemonedit Me.Button39.Text = "Import All Cries" Me.Button39.UseVisualStyleBackColor = True ' - 'TextBox7 + 'Label58 ' - Me.TextBox7.Location = New System.Drawing.Point(125, 91) - Me.TextBox7.Margin = New System.Windows.Forms.Padding(4) - Me.TextBox7.Name = "TextBox7" - Me.TextBox7.Size = New System.Drawing.Size(44, 22) - Me.TextBox7.TabIndex = 6 + Me.Label58.AutoSize = True + Me.Label58.Location = New System.Drawing.Point(17, 240) + Me.Label58.Name = "Label58" + Me.Label58.Size = New System.Drawing.Size(111, 17) + Me.Label58.TabIndex = 14 + Me.Label58.Text = "Front Animation:" ' - 'Label57 + 'TextBox8 ' - Me.Label57.AutoSize = True - Me.Label57.Location = New System.Drawing.Point(24, 96) - Me.Label57.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0) - Me.Label57.Name = "Label57" - Me.Label57.Size = New System.Drawing.Size(96, 17) - Me.Label57.TabIndex = 5 - Me.Label57.Text = "Hoenn to Nat:" + Me.TextBox8.Location = New System.Drawing.Point(151, 235) + Me.TextBox8.Name = "TextBox8" + Me.TextBox8.Size = New System.Drawing.Size(46, 22) + Me.TextBox8.TabIndex = 15 + ' + 'TextBox9 + ' + Me.TextBox9.Location = New System.Drawing.Point(151, 266) + Me.TextBox9.Name = "TextBox9" + Me.TextBox9.Size = New System.Drawing.Size(46, 22) + Me.TextBox9.TabIndex = 17 + ' + 'Label59 + ' + Me.Label59.AutoSize = True + Me.Label59.Location = New System.Drawing.Point(17, 271) + Me.Label59.Name = "Label59" + Me.Label59.Size = New System.Drawing.Size(109, 17) + Me.Label59.TabIndex = 16 + Me.Label59.Text = "Back Animation:" + ' + 'TextBox10 + ' + Me.TextBox10.Location = New System.Drawing.Point(151, 299) + Me.TextBox10.Name = "TextBox10" + Me.TextBox10.Size = New System.Drawing.Size(46, 22) + Me.TextBox10.TabIndex = 19 + ' + 'Label60 + ' + Me.Label60.AutoSize = True + Me.Label60.Location = New System.Drawing.Point(17, 304) + Me.Label60.Name = "Label60" + Me.Label60.Size = New System.Drawing.Size(114, 17) + Me.Label60.TabIndex = 18 + Me.Label60.Text = "Animation Delay:" + ' + 'AniSavBttn + ' + Me.AniSavBttn.Location = New System.Drawing.Point(16, 330) + Me.AniSavBttn.Name = "AniSavBttn" + Me.AniSavBttn.Size = New System.Drawing.Size(182, 35) + Me.AniSavBttn.TabIndex = 20 + Me.AniSavBttn.Text = "Save" + Me.AniSavBttn.UseVisualStyleBackColor = True ' 'Pokemonedit ' @@ -3420,4 +3491,11 @@ Partial Class Pokemonedit Friend WithEvents Button39 As System.Windows.Forms.Button Friend WithEvents TextBox7 As System.Windows.Forms.TextBox Friend WithEvents Label57 As System.Windows.Forms.Label + Friend WithEvents AniSavBttn As System.Windows.Forms.Button + Friend WithEvents TextBox10 As System.Windows.Forms.TextBox + Friend WithEvents Label60 As System.Windows.Forms.Label + Friend WithEvents TextBox9 As System.Windows.Forms.TextBox + Friend WithEvents Label59 As System.Windows.Forms.Label + Friend WithEvents TextBox8 As System.Windows.Forms.TextBox + Friend WithEvents Label58 As System.Windows.Forms.Label End Class diff --git a/GBAPokemonGameEditor/Pokemonedit.vb b/GBAPokemonGameEditor/Pokemonedit.vb index 4f33755..29db1f4 100644 --- a/GBAPokemonGameEditor/Pokemonedit.vb +++ b/GBAPokemonGameEditor/Pokemonedit.vb @@ -754,7 +754,7 @@ Public Class Pokemonedit End If - + GroupBox15.Enabled = False Button2.Enabled = False AnimationPointer.Text = "" AnimationPointer.Enabled = False @@ -765,12 +765,20 @@ Public Class Pokemonedit If header2 = "BPE" Then Button2.Enabled = True AnimationPointer.Enabled = True + GroupBox15.Enabled = True AnimationPointers = Int32.Parse((GetString(GetINIFileLocation(), header, "PokemonAnimations", "")), System.Globalization.NumberStyles.HexNumber) AnimationPointer.Text = (Hex(Int32.Parse((ReverseHEX(ReadHEX(LoadedROM, (AnimationPointers) + (8) + (i * 8), 4))), System.Globalization.NumberStyles.HexNumber) - &H8000000)) GetAndDrawAnimationPokemonPic(AniPic, i + 1) GetAndDrawAnimationPokemonPicShiny(AniPic2, i + 1) + + + TextBox8.Text = (Int32.Parse(((ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "FrontAnimationTable", "")), System.Globalization.NumberStyles.HexNumber)) + (i), 1))), System.Globalization.NumberStyles.HexNumber)) + TextBox9.Text = (Int32.Parse(((ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "BackAnimTable", "")), System.Globalization.NumberStyles.HexNumber)) + (1) + (i), 1))), System.Globalization.NumberStyles.HexNumber)) + TextBox10.Text = (Int32.Parse(((ReadHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "AnimDelayTable", "")), System.Globalization.NumberStyles.HexNumber)) + (i), 1))), System.Globalization.NumberStyles.HexNumber)) + + End If GetAndDrawFrontPokemonPic(FrntPic, i + 1) GetAndDrawBackPokemonPic(BckPic2, i + 1) @@ -1763,6 +1771,8 @@ Public Class Pokemonedit If (i + 1) < 252 Then + 'MsgBox(Val(CryPointer.Text) + &H8000000) + WriteHEX(LoadedROM, (CryTable) + (4) + (i * 12), ReverseHEX(Hex(Int32.Parse(((CryPointer.Text)), System.Globalization.NumberStyles.HexNumber) + &H8000000))) ' WriteHEX(LoadedROM, (CryTable3) + (4) + (i * 12), ReverseHEX(Hex(Int32.Parse(((CryPointer2.Text)), System.Globalization.NumberStyles.HexNumber) + &H8000000))) @@ -2451,7 +2461,7 @@ Public Class Pokemonedit TextBox5.Text = GetPokedexTypeName(TextBox3.Text) - If header2 = "BPE" And TextBox4.Text < (GetString(GetINIFileLocation(), header, "NumberOfRegionDex", "") + 1) Then + If header2 = "BPE" And TextBox4.Text < (GetString(GetINIFileLocation(), header, "NumberOfRegionDex", "151") + 1) Then TextBox7.Enabled = True TextBox7.Text = Int32.Parse((ReverseHEX(ReadHEX(LoadedROM, Int32.Parse((GetString(GetINIFileLocation(), header, "HoenntoNationalDex", "")), System.Globalization.NumberStyles.HexNumber) + ((TextBox4.Text - 1) * 2), 2))), System.Globalization.NumberStyles.HexNumber) @@ -3899,10 +3909,6 @@ Public Class Pokemonedit SaveCry(crynorm, CryTable) - 'ImportPokemonFootPrint(fileOpenDialog.FileName, PKMNames.SelectedIndex + 1) - - 'GetAndDrawPokemonFootPrint(PictureBox1, PKMNames.SelectedIndex + 1) - Me.Text = "Pokemon Editor" Me.Enabled = True End If @@ -3951,4 +3957,17 @@ Public Class Pokemonedit Private Sub chkCompressed1_CheckedChanged(sender As Object, e As EventArgs) Handles chkCompressed1.CheckedChanged End Sub + + Private Sub AniSavBttn_Click(sender As Object, e As EventArgs) Handles AniSavBttn.Click + + If header2 = "BPE" Then + i = PKMNames.SelectedIndex + + WriteHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "FrontAnimationTable", "")), System.Globalization.NumberStyles.HexNumber)) + (i), (Hex(Val(TextBox8.Text)))) + WriteHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "BackAnimTable", "")), System.Globalization.NumberStyles.HexNumber)) + (1) + (i), (Hex(Val(TextBox9.Text)))) + WriteHEX(LoadedROM, (Int32.Parse((GetString(GetINIFileLocation(), header, "AnimDelayTable", "")), System.Globalization.NumberStyles.HexNumber)) + (i), (Hex(Val(TextBox10.Text)))) + + End If + + 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 3b2a9cc..3151f23 100644 --- a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application +++ b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application @@ -16,7 +16,7 @@ - 6ew58NOBldGe6c8PkTZKCPnWQJPc23GmAtZYU9hbcg8= + bTzCyW2xhD7mfO1HKLNL3G7dl+97S82cw1uDKsQHFTM= diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe index e29ee71..c3bbfaa 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 57d686a..031cd50 100644 --- a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest +++ b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest @@ -43,14 +43,14 @@ - + - EucaHAdTZ8vwaknRacYCHNL84YRF45iFTgVK+FSsjJs= + KnI9E4ncysJK6R4J3tmwgbcsqAR3LaRGMCaj9K+uPHc= diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb index f5f7988..2a98d0b 100644 Binary files a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb and b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb differ diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.application b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.application index 3b2a9cc..3151f23 100644 --- a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.application +++ b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.application @@ -16,7 +16,7 @@ - 6ew58NOBldGe6c8PkTZKCPnWQJPc23GmAtZYU9hbcg8= + bTzCyW2xhD7mfO1HKLNL3G7dl+97S82cw1uDKsQHFTM= diff --git a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.exe.manifest b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.exe.manifest index 57d686a..031cd50 100644 --- a/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.exe.manifest +++ b/GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.exe.manifest @@ -43,14 +43,14 @@ - + - EucaHAdTZ8vwaknRacYCHNL84YRF45iFTgVK+FSsjJs= + KnI9E4ncysJK6R4J3tmwgbcsqAR3LaRGMCaj9K+uPHc= diff --git a/GBAPokemonGameEditor/bin/Debug/errors.txt b/GBAPokemonGameEditor/bin/Debug/errors.txt index 7e899db..d7d4529 100644 --- a/GBAPokemonGameEditor/bin/Debug/errors.txt +++ b/GBAPokemonGameEditor/bin/Debug/errors.txt @@ -236,3 +236,4 @@ Error! EvolutionName250 is missing for ROM BPEE! Error! EvolutionName251 is missing for ROM BPEE! Error! EvolutionName252 is missing for ROM BPEE! Error! EvolutionName253 is missing for ROM BPEE! +Error! NumberOfRegionDex is missing for ROM BPRE! diff --git a/GBAPokemonGameEditor/bin/Debug/ini/roms.ini b/GBAPokemonGameEditor/bin/Debug/ini/roms.ini index d9e9e3c..d1eccd6 100644 --- a/GBAPokemonGameEditor/bin/Debug/ini/roms.ini +++ b/GBAPokemonGameEditor/bin/Debug/ini/roms.ini @@ -850,6 +850,9 @@ PokemonBackSprites=3028B8 PokemonNormalPal=303678 PokemonShinyPal=304438 PokemonAnimations=30A18C +FrontAnimationTable=3299EC +BackAnimTable=60A8C8 +AnimDelayTable=329B87 IconPointerTable=57BCA8 IconPalTable=57C388 CryTable=69DCF4 diff --git a/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache b/GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache index 00f5715..789f267 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 3b2a9cc..3151f23 100644 --- a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application +++ b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application @@ -16,7 +16,7 @@ - 6ew58NOBldGe6c8PkTZKCPnWQJPc23GmAtZYU9hbcg8= + bTzCyW2xhD7mfO1HKLNL3G7dl+97S82cw1uDKsQHFTM= diff --git a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe index e29ee71..c3bbfaa 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 57d686a..031cd50 100644 --- a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest +++ b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest @@ -43,14 +43,14 @@ - + - EucaHAdTZ8vwaknRacYCHNL84YRF45iFTgVK+FSsjJs= + KnI9E4ncysJK6R4J3tmwgbcsqAR3LaRGMCaj9K+uPHc= diff --git a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb index f5f7988..2a98d0b 100644 Binary files a/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb and b/GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb differ diff --git a/README.md b/README.md index ed53410..f40eeb6 100644 --- a/README.md +++ b/README.md @@ -189,6 +189,8 @@ AkameTheBulbasaur doom-desire +DizzyEggg + Downloads ================================ https://github.com/Gamer2020/PokemonGameEditor/releases