mirror of
https://github.com/Gamer2020/PokemonGameEditor.git
synced 2026-05-10 22:44:26 -05:00
I was away for a month or so without internet. In that time I continued to work on PGE. There are a lot of new things in this version. The Attack adder has been updated. I've completed Jambo51's move table hack for Fire Red and made it so the Attack adder installs it. I still have yet to port the hack to Emerald. The Pokemon adder works for English Fire Red. I made it add Pokemon the same way that it's done in DoesntKnowHowToPlay's tutorial in order to remain consistent with what others may have already done. If any problems occur with the Pokemon adder please let me know. Unlike G3HS, cries and other things are expanded correctly by PGE. I advise not using G3HS to add more Pokemon. When an offset is missing from the ini, PGE will now dump text to a file named errors.txt letting you know what offset is missing and for what ROM. I may expand on this in the future. Improved importing and exporting of data. Attacks, Abilities, and Pokemon can be exported and imported as inis. It is now handled better than in older versions. I fixed the Pokedex data editor because it seems it wasn't loading some data properly. I've added a Pokedex tab to the Pokemon Editor. Even though I feel they should be seperate I mainly added it because I want Pokedex data to be included when you export Pokemon Data. I made it so that the Pokedex tab shows you how big the sprites will be in the size compare. I will make it show where the sprites will be onscreen once I figure out the formula for it. Bulbapedia is wrong when it comes to the Pokedex data. Added the item use anitmation (FR/LG) bytes to the Pokemon Editor. Added editing of the in battle sprite positions. Has the preview from Advance Series. (Loading of all the Pokemon data seems slow now. Eventually I will have to come back and optimize things.) Pokemon sprites can be imported and exported. The format is the same as Advance Series. The importing and exporting of the animations from Emerald are handled better than in Advance Series. Pokemon Icons can now be imported and exported. Advance Series compatable as well. Pokemon Footprints can be imported and exported. Other Miscellaneous fixes and additions.
1128 lines
44 KiB
VB.net
1128 lines
44 KiB
VB.net
Imports System
|
|
Imports System.IO
|
|
|
|
Module GetImageFunctions
|
|
|
|
Public Function DrawBlockToTile(ByVal Destination As Bitmap, ByVal Source As Bitmap, ByVal BlockNum As Integer, ByVal yflip As Integer, ByVal xflip As Integer, ByVal Tile As Integer, ByVal section As Integer) As Bitmap
|
|
Dim Output As Bitmap = Destination
|
|
Dim PixelColor As Color
|
|
|
|
Dim HeightLoop As Integer
|
|
Dim HeightCounter As Integer
|
|
|
|
Dim TileAgain As Integer
|
|
|
|
Dim xdes As Integer
|
|
Dim ydes As Integer
|
|
Dim xsrc As Integer
|
|
Dim ysrc As Integer
|
|
Dim x As Integer
|
|
Dim y As Integer
|
|
|
|
'For destination
|
|
|
|
|
|
HeightLoop = Tile
|
|
HeightCounter = 0
|
|
|
|
While HeightLoop > 7
|
|
|
|
HeightLoop = HeightLoop - 8
|
|
HeightCounter = HeightCounter + 1
|
|
|
|
End While
|
|
|
|
ydes = (HeightCounter * 16) '+ (section * 8)
|
|
|
|
xdes = ((Tile - (HeightCounter * 8)) * 16) '+ (section * 8)
|
|
|
|
If section = 1 Then
|
|
xdes = xdes + 8
|
|
ElseIf section = 2 Then
|
|
ydes = ydes + 8
|
|
ElseIf section = 3 Then
|
|
xdes = xdes + 8
|
|
ydes = ydes + 8
|
|
End If
|
|
|
|
'For the source
|
|
If BlockNum < 512 Then
|
|
|
|
TileAgain = BlockNum
|
|
|
|
Else
|
|
|
|
TileAgain = BlockNum - 512
|
|
|
|
End If
|
|
|
|
HeightLoop = TileAgain
|
|
HeightCounter = 0
|
|
|
|
While HeightLoop > 15
|
|
|
|
HeightLoop = HeightLoop - 16
|
|
HeightCounter = HeightCounter + 1
|
|
|
|
End While
|
|
|
|
ysrc = HeightCounter * 8
|
|
|
|
xsrc = (TileAgain - (HeightCounter * 16)) * 8
|
|
|
|
|
|
If xflip = 0 And yflip = 0 Then
|
|
|
|
For x = 0 To 7
|
|
For y = 0 To 7
|
|
PixelColor = Source.GetPixel((xsrc) + x, (ysrc) + y)
|
|
|
|
Output.SetPixel((xdes) + x, (ydes) + y, PixelColor)
|
|
|
|
Next y
|
|
|
|
Next x
|
|
End If
|
|
|
|
If xflip = 1 And yflip = 0 Then
|
|
|
|
For x = 0 To 7
|
|
For y = 0 To 7
|
|
PixelColor = Source.GetPixel((xsrc) + x, (ysrc) + y)
|
|
|
|
Output.SetPixel((xdes + 7) - x, (ydes) + y, PixelColor)
|
|
|
|
Next y
|
|
|
|
Next x
|
|
End If
|
|
|
|
If xflip = 0 And yflip = 1 Then
|
|
|
|
For x = 0 To 7
|
|
For y = 0 To 7
|
|
PixelColor = Source.GetPixel((xsrc) + x, (ysrc) + y)
|
|
|
|
Output.SetPixel((xdes) + x, (ydes + 7) - y, PixelColor)
|
|
|
|
Next y
|
|
|
|
Next x
|
|
End If
|
|
|
|
If xflip = 1 And yflip = 1 Then
|
|
|
|
For x = 0 To 7
|
|
For y = 0 To 7
|
|
PixelColor = Source.GetPixel((xsrc) + x, (ysrc) + y)
|
|
|
|
Output.SetPixel((xdes + 7) - x, (ydes + 7) - y, PixelColor)
|
|
|
|
Next y
|
|
|
|
Next x
|
|
End If
|
|
DrawBlockToTile = Output
|
|
End Function
|
|
|
|
Public Sub GetAndDrawItemPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ItemIMGData", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8)
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ItemIMGData", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) + 4
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 24, 24, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawFrontPokemonPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonFrontSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Function GetFrontPokemonPicToBitmap(ByVal index As Integer, Optional ShowBackcolor As Boolean = True) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonFrontSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, ShowBackcolor)
|
|
GetFrontPokemonPicToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function GetShinyFrontPokemonPicToBitmap(ByVal index As Integer, Optional ShowBackcolor As Boolean = True) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonFrontSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonShinyPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, ShowBackcolor)
|
|
GetShinyFrontPokemonPicToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function GetFrontPokemonPicToByteArray(ByVal index As Integer) As Byte()
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonFrontSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, 0)
|
|
LoadBitmapFromArray(Image, Palette32, bSprite, 64, 64)
|
|
'bSprite = LoadSprite(Image, Palette32, 64, 64, 0)
|
|
GetFrontPokemonPicToByteArray = SaveBitmapToArray(bSprite, Palette32)
|
|
|
|
End Function
|
|
|
|
Public Sub GetAndDrawFrontPokemonPicBLACK(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonFrontSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
Palette32(1) = Color.Black
|
|
Palette32(2) = Color.Black
|
|
Palette32(3) = Color.Black
|
|
Palette32(4) = Color.Black
|
|
Palette32(5) = Color.Black
|
|
Palette32(6) = Color.Black
|
|
Palette32(7) = Color.Black
|
|
Palette32(8) = Color.Black
|
|
Palette32(9) = Color.Black
|
|
Palette32(10) = Color.Black
|
|
Palette32(11) = Color.Black
|
|
Palette32(12) = Color.Black
|
|
Palette32(13) = Color.Black
|
|
Palette32(14) = Color.Black
|
|
Palette32(15) = Color.Black
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawFrontPokemonPicShiny(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonFrontSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonShinyPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawBackPokemonPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonBackSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonShinyPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Function GetBackPokemonPicToBitmap(ByVal index As Integer, Optional ShowBackcolor As Boolean = True) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonBackSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonShinyPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, ShowBackcolor)
|
|
GetBackPokemonPicToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function GetNormalBackPokemonPicToBitmap(ByVal index As Integer, Optional ShowBackcolor As Boolean = True) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonBackSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, ShowBackcolor)
|
|
GetNormalBackPokemonPicToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Sub GetAndDrawBackPokemonPicNormal(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonBackSprites", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawAnimationPokemonPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonAnimations", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 128, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Function GetNormalAnimationPokemonPicToBitmap(ByVal index As Integer, Optional ShowBackcolor As Boolean = True) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonAnimations", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 128, ShowBackcolor)
|
|
GetNormalAnimationPokemonPicToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function GetShinyAnimationPokemonPicToBitmap(ByVal index As Integer, Optional ShowBackcolor As Boolean = True) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonAnimations", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonShinyPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 128, ShowBackcolor)
|
|
GetShinyAnimationPokemonPicToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function GetAnimationPicToByteArray(ByVal index As Integer) As Byte()
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonAnimations", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonNormalPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
bSprite = LoadSprite(Image, Palette32, 64, 128, 0)
|
|
LoadBitmapFromArray(Image, Palette32, bSprite, 64, 128)
|
|
'bSprite = LoadSprite(Image, Palette32, 64, 64, 0)
|
|
GetAnimationPicToByteArray = SaveBitmapToArray(bSprite, Palette32)
|
|
|
|
End Function
|
|
|
|
Public Sub GetAndDrawAnimationPokemonPicShiny(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonAnimations", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "PokemonShinyPal", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 128, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawShadowAnimationPokemonPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ShadowFronts", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ShadowPals", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 128, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawBackShadowPokemonPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ShadowBacks", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ShadowPals", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Sub GetAndDrawShadowFrontPokemonPic(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ShadowFronts", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon front sprites, + 8 = Bulbasaur.
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "ShadowPals", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8) 'Pointer to Pokemon normal palettes, + 8 = Bulbasaur.
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Function LoadPalette(ByVal Bits() As Byte) As Color()
|
|
Dim Temp As UShort
|
|
Dim Colors(15) As Color
|
|
Dim C1 As Byte
|
|
Dim C2 As Byte
|
|
Dim R As UShort, G As UShort, B As UShort
|
|
Dim i As Byte
|
|
|
|
For i = 0 To &H1F Step 2
|
|
C1 = Bits(i)
|
|
C2 = Bits(i + 1)
|
|
Temp = C2 * &H100 + C1
|
|
|
|
R = (Temp And &H1F) * &H8
|
|
G = (Temp And &H3E0) / &H4
|
|
B = (Temp And &H7C00) / &H80
|
|
|
|
Colors(i / 2) = Color.FromArgb(&HFF, R, G, B)
|
|
Next
|
|
|
|
LoadPalette = Colors
|
|
End Function
|
|
|
|
Public Function LoadSprite(ByRef Bits() As Byte, ByVal Palette() As Color, Optional ByVal Width As Integer = 64, Optional ByVal Height As Integer = 64, Optional ByVal ShowBackColor As Boolean = True) As Bitmap
|
|
On Error GoTo ErrorHandle
|
|
Dim x1 As Integer, y1 As Integer
|
|
Dim x2 As Integer, y2 As Integer
|
|
Dim bmpTiles As New Bitmap(Width, Height)
|
|
Dim Temp As Byte
|
|
Dim i As Integer
|
|
|
|
For y1 = 0 To Height - 8 Step 8
|
|
For x1 = 0 To Width - 8 Step 8
|
|
For y2 = 0 To 7
|
|
For x2 = 0 To 7 Step 2
|
|
Temp = Bits(i)
|
|
If ShowBackColor = True Then
|
|
bmpTiles.SetPixel(x1 + x2 + 1, y1 + y2, Palette((Temp And &HF0) / &H10))
|
|
bmpTiles.SetPixel(x1 + x2, y1 + y2, Palette(Temp And &HF))
|
|
Else
|
|
|
|
' If Temp And &HF0 <> 0 Then
|
|
If Palette((Temp And &HF0) / &H10) <> Palette(0) Then
|
|
|
|
|
|
'MsgBox(Temp And &HF0)
|
|
' MsgBox("hit")
|
|
bmpTiles.SetPixel(x1 + x2 + 1, y1 + y2, Palette((Temp And &HF0) / &H10))
|
|
|
|
End If
|
|
If Palette((Temp And &HF)) <> Palette(0) Then
|
|
' If Temp And &HF <> 0 Then
|
|
' MsgBox("hit")
|
|
|
|
bmpTiles.SetPixel(x1 + x2, y1 + y2, Palette((Temp And &HF)))
|
|
|
|
End If
|
|
End If
|
|
i = i + 1
|
|
Next
|
|
Next
|
|
Next
|
|
Next
|
|
|
|
LoadSprite = bmpTiles
|
|
ErrorHandle:
|
|
End Function
|
|
|
|
Public Sub GetAndDrawPokemonIconPic(ByVal picBox As PictureBox, ByVal index As Integer, ByVal palindex As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "IconPointerTable", ""), System.Globalization.NumberStyles.HexNumber) + ((index * 4))
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "IconPals", ""), System.Globalization.NumberStyles.HexNumber) + (palindex * 32)
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
'LZ77UnComp(Temp, Image)
|
|
Image = Temp
|
|
|
|
ReDim Temp(&HFFF)
|
|
'fs.Position = pOffset
|
|
'pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
'LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Temp)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 32, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Function GetAndDrawPokemonIconToBitmap(ByVal index As Integer, ByVal palindex As Integer, Optional ShowBackColor As Boolean = False) As Bitmap
|
|
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "IconPointerTable", ""), System.Globalization.NumberStyles.HexNumber) + ((index * 4))
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "IconPals", ""), System.Globalization.NumberStyles.HexNumber) + (palindex * 32)
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
'LZ77UnComp(Temp, Image)
|
|
Image = Temp
|
|
|
|
ReDim Temp(&HFFF)
|
|
'fs.Position = pOffset
|
|
'pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
'LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Temp)
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 32, 64, ShowBackColor)
|
|
GetAndDrawPokemonIconToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function Load2BPSprite16By16(ByRef Bits() As Byte, ByVal Palette() As Color) As Bitmap
|
|
|
|
Dim bmpTiles As New Bitmap(16, 16)
|
|
|
|
Dim sideways As Integer = 0
|
|
Dim updown As Integer = 0
|
|
Dim bittrack As Integer = 0
|
|
Dim bytetrack As Integer = 0
|
|
Dim curbit As String
|
|
Dim bitsarray As BitArray
|
|
Dim CurSquare As Integer = 0
|
|
|
|
While updown < 16
|
|
While sideways < 8
|
|
|
|
bitsarray = New BitArray({Bits(bytetrack)})
|
|
|
|
curbit = bitsarray(bittrack)
|
|
|
|
If curbit = "False" Then
|
|
|
|
If CurSquare = 0 Then
|
|
|
|
bmpTiles.SetPixel(sideways, updown, Palette(0))
|
|
|
|
End If
|
|
|
|
If CurSquare = 1 Then
|
|
|
|
bmpTiles.SetPixel((CurSquare * 8) + sideways, updown - (CurSquare * 8), Palette(0))
|
|
|
|
End If
|
|
|
|
If CurSquare = 2 Then
|
|
|
|
bmpTiles.SetPixel(sideways, updown + (8), Palette(0))
|
|
|
|
End If
|
|
|
|
If CurSquare = 3 Then
|
|
|
|
bmpTiles.SetPixel((8) + sideways, updown, Palette(0))
|
|
|
|
End If
|
|
|
|
ElseIf curbit = "True"
|
|
|
|
If CurSquare = 0 Then
|
|
|
|
bmpTiles.SetPixel(sideways, updown, Palette(1))
|
|
|
|
End If
|
|
|
|
If CurSquare = 1 Then
|
|
|
|
bmpTiles.SetPixel((CurSquare * 8) + sideways, updown - (CurSquare * 8), Palette(1))
|
|
|
|
End If
|
|
|
|
If CurSquare = 2 Then
|
|
|
|
bmpTiles.SetPixel(sideways, updown + (8), Palette(1))
|
|
|
|
End If
|
|
|
|
If CurSquare = 3 Then
|
|
|
|
bmpTiles.SetPixel((8) + sideways, updown, Palette(1))
|
|
|
|
End If
|
|
|
|
End If
|
|
bittrack = bittrack + 1
|
|
If bittrack = 8 Then
|
|
bittrack = 0
|
|
bytetrack = bytetrack + 1
|
|
End If
|
|
|
|
sideways = sideways + 1
|
|
End While
|
|
sideways = 0
|
|
|
|
If updown = 7 And CurSquare = 0 Then
|
|
CurSquare = CurSquare + 1
|
|
End If
|
|
|
|
If updown = 15 And CurSquare = 1 Then
|
|
CurSquare = CurSquare + 1
|
|
updown = -1
|
|
End If
|
|
|
|
If updown = 7 And CurSquare = 2 Then
|
|
CurSquare = CurSquare + 1
|
|
|
|
End If
|
|
|
|
If updown = 15 And CurSquare = 3 Then
|
|
CurSquare = CurSquare + 1
|
|
End If
|
|
|
|
updown = updown + 1
|
|
|
|
End While
|
|
|
|
Load2BPSprite16By16 = bmpTiles
|
|
ErrorHandle:
|
|
End Function
|
|
|
|
Public Sub GetAndDrawPokemonFootPrint(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "FootPrintTable", ""), System.Globalization.NumberStyles.HexNumber) + ((index * 4))
|
|
Dim Temp(&HFF) As Byte
|
|
Dim Image(&HFF) As Byte
|
|
Dim Palette32(1) As Color
|
|
Dim bSprite As Bitmap
|
|
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFF)
|
|
Image = Temp
|
|
End Using
|
|
End Using
|
|
|
|
Palette32(0) = Color.Transparent
|
|
Palette32(1) = Color.Black
|
|
|
|
bSprite = Load2BPSprite16By16(Image, Palette32)
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
Public Function GetPokemonFootPrintToBitmap(ByVal index As Integer) As Bitmap
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "FootPrintTable", ""), System.Globalization.NumberStyles.HexNumber) + ((index * 4))
|
|
Dim Temp(&HFF) As Byte
|
|
Dim Image(&HFF) As Byte
|
|
Dim Palette32(1) As Color
|
|
Dim bSprite As Bitmap
|
|
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFF)
|
|
Image = Temp
|
|
End Using
|
|
End Using
|
|
|
|
Palette32(0) = Color.Transparent
|
|
Palette32(1) = Color.Black
|
|
|
|
bSprite = Load2BPSprite16By16(Image, Palette32)
|
|
GetPokemonFootPrintToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Sub GetAndDrawTrainerPicBLACK(ByVal picBox As PictureBox, ByVal index As Integer)
|
|
Dim sOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "TrainerImageTable", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8)
|
|
Dim pOffset As Integer = Int32.Parse(GetString(GetINIFileLocation(), header, "TrainerPaletteTable", ""), System.Globalization.NumberStyles.HexNumber) + (index * 8)
|
|
Dim Temp(&HFFF) As Byte
|
|
Dim Image(&HFFFF) As Byte
|
|
Dim Palette15(&HFFF) As Byte
|
|
Dim Palette32() As Color
|
|
Dim bSprite As Bitmap
|
|
Using fs As New FileStream(LoadedROM, FileMode.Open, FileAccess.Read)
|
|
Using r As New BinaryReader(fs)
|
|
fs.Position = sOffset
|
|
sOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = sOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = pOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
Palette32(1) = Color.Black
|
|
Palette32(2) = Color.Black
|
|
Palette32(3) = Color.Black
|
|
Palette32(4) = Color.Black
|
|
Palette32(5) = Color.Black
|
|
Palette32(6) = Color.Black
|
|
Palette32(7) = Color.Black
|
|
Palette32(8) = Color.Black
|
|
Palette32(9) = Color.Black
|
|
Palette32(10) = Color.Black
|
|
Palette32(11) = Color.Black
|
|
Palette32(12) = Color.Black
|
|
Palette32(13) = Color.Black
|
|
Palette32(14) = Color.Black
|
|
Palette32(15) = Color.Black
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, GetString(AppPath & "GBAPGESettings.ini", "Settings", "TransparentImages", "0"))
|
|
picBox.Image = bSprite
|
|
picBox.Refresh()
|
|
|
|
End Sub
|
|
|
|
End Module
|