mirror of
https://github.com/Gamer2020/PokemonGameEditor.git
synced 2026-07-08 04:45:18 -05:00
# Conflicts: # .vs/GBAPokemonGameEditor/v14/.suo # .vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-shm # .vs/GBAPokemonGameEditor/v15/Server/sqlite3/storage.ide-wal # GBAPokemonGameEditor/ImportDataFunctions.vb # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.application # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.exe.manifest # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.pdb # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.application # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.exe # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.vshost.exe.manifest # GBAPokemonGameEditor/bin/Debug/PokemonGameEditor.xml # GBAPokemonGameEditor/bin/Debug/app.publish/PokemonGameEditor.exe # GBAPokemonGameEditor/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache # GBAPokemonGameEditor/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache # GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.FileListAbsolute.txt # GBAPokemonGameEditor/obj/x86/Debug/GBAPokemonGameEditor.vbproj.GenerateResource.Cache # GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.application # GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe # GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.exe.manifest # GBAPokemonGameEditor/obj/x86/Debug/PokemonGameEditor.pdb
1268 lines
49 KiB
VB.net
1268 lines
49 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
|
|
|
|
Dim individualPalettes As Boolean = False
|
|
Dim pTableOffset As Integer = 0
|
|
|
|
Try
|
|
pTableOffset = Int32.Parse(GetString(GetINIFileLocation(), header, "IconPointerTable2", ""), System.Globalization.NumberStyles.HexNumber) + ((palindex * 8))
|
|
individualPalettes = True
|
|
Catch
|
|
|
|
End Try
|
|
|
|
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
|
|
|
|
If Not individualPalettes Then
|
|
fs.Position = pOffset
|
|
|
|
Else
|
|
fs.Position = pTableOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
|
|
End If
|
|
|
|
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
|
|
|
|
Dim individualPalettes As Boolean = False
|
|
Dim pTableOffset As Integer = 0
|
|
|
|
Try
|
|
pTableOffset = Int32.Parse(GetString(GetINIFileLocation(), header, "IconPointerTable2", ""), System.Globalization.NumberStyles.HexNumber) + ((palindex * 8))
|
|
individualPalettes = True
|
|
Catch
|
|
|
|
End Try
|
|
|
|
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
|
|
|
|
If Not individualPalettes Then
|
|
fs.Position = pOffset
|
|
Else
|
|
fs.Position = pTableOffset
|
|
pOffset = r.ReadInt32 - &H8000000
|
|
fs.Position = pOffset
|
|
End If
|
|
|
|
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
|
|
|
|
Public Sub GetAndDrawTrainerPic(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)
|
|
|
|
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 GetAndDrawTrainerSpriteToBitmap(ByVal index As Integer, Optional ShowBackColor As Boolean = False) As Bitmap
|
|
|
|
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)
|
|
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 64, 64, ShowBackColor)
|
|
GetAndDrawTrainerSpriteToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
Public Function GetAndDrawItemIconToBitmap(ByVal imgOffset As String, ByVal palOffset As String, Optional ShowBackColor As Boolean = False) As Bitmap
|
|
|
|
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 = Convert.ToInt32(imgOffset, 16)
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Image)
|
|
|
|
ReDim Temp(&HFFF)
|
|
fs.Position = Convert.ToInt32(palOffset, 16)
|
|
r.Read(Temp, 0, &HFFF)
|
|
LZ77UnComp(Temp, Palette15)
|
|
|
|
Palette32 = LoadPalette(Palette15)
|
|
|
|
End Using
|
|
End Using
|
|
|
|
|
|
bSprite = LoadSprite(Image, Palette32, 24, 24, ShowBackColor)
|
|
GetAndDrawItemIconToBitmap = bSprite
|
|
|
|
End Function
|
|
|
|
End Module
|