init commit

This commit is contained in:
sShemet
2024-05-10 14:06:43 +05:00
commit 571b9550cc
118 changed files with 22557 additions and 0 deletions

View File

@@ -0,0 +1,625 @@
Imports System.IO
Imports System.Text
Imports System.IO.Compression
Partial Class Form1
Private Sub ImportCode_Click(sender As Object, e As EventArgs) Handles ImportCode.Click
If Not UserRadio.Checked Then MsgBox("YOU CAN IMPORT ONLY IN USER ISO!!!") : Exit Sub
Dim cd = New ISOTools
'OpensFile
OpenFileDialog1.Multiselect = True
If OpenFileDialog1.ShowDialog <> DialogResult.OK Then Exit Sub
OpenFileDialog1.Multiselect = False
For Each filee In OpenFileDialog1.FileNames
Dim fileInfo = Path.GetFileName(filee)
Dim f = File.ReadAllBytes(filee)
If fileInfo.Contains("SLPS_028.25") Then
cd.saveCDfile(UserPath.Text, 27, UBound(f) + 1, f)
End If
Next
MsgBox(String.Format("Imported {0} files ", UBound(OpenFileDialog1.FileNames) + 1), MsgBoxStyle.Exclamation)
End Sub
Private Sub ExpMainExe_Click(sender As Object, e As EventArgs) Handles ExpMainExe.Click
Dim iso = New ISOTools
Dim fil = iso.getCDfile(getFilnam, 27, 1812408)
SaveFileDialog1.FileName = WorkDir.Text & "SLPS_028.25"
If SaveFileDialog1.ShowDialog <> DialogResult.OK Then Exit Sub
My.Computer.FileSystem.WriteAllBytes(SaveFileDialog1.FileName, fil.ToArray, False)
End Sub
Private Sub Export181RUS_Click(sender As Object, e As EventArgs) Handles Export181RUS.Click
Dim files As New List(Of String)
files = IO.Directory.GetFiles("D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\UnRLE\0057_ALL_SCENERY\", "*.TRNSL").ToList
Dim OutPut_Dir = "D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\UnRLE\0057_ALL_SCENERY\TRANSLATED_RAW\"
Dim iso = New ISOTools
Dim filnam = getFilnam()
Dim r = New rleTools
For a = 57 To 397
Dim fil = iso.getCDfile(filnam, files1(a).Sector, files1(a).Sizw)
If a = 397 Then
fil = iso.getCDfile(filnam, files1(390).Sector, files1(390).Sizw) 'заменяем последний файл...
My.Computer.FileSystem.WriteAllBytes(OutPut_Dir & a.ToString("D4") & "_orig.bin", fil.ToArray, False) : Continue For
End If
Dim ind = files.FindIndex(Function(x) x.Contains(a.ToString("D4")))
'If file withoout translation
If ind = -1 Then
My.Computer.FileSystem.WriteAllBytes(OutPut_Dir & a.ToString("D4") & "_orig.bin", fil.ToArray, False) : Continue For
End If
Debug.WriteLine("Working On......" & a.ToString("D4"))
DeconstructFile(fil.ToArray) 'here is separated binfile
Dim curfile As rleFile = binFile.Last
Dim RusFile = My.Computer.FileSystem.ReadAllBytes(files(ind))
binFile.Last.Bytes = r.decodeRLEnew(RusFile, curfile).ToArray 'Pack and replace 8th file
'АРХИВИРУЕМ МАССИВ ФАЙЛОВ ДЛЯ ЗАПИСИ В ОДИН ФАЙЛ
Dim lastSectorID As Integer = 0
Dim finalPack = New List(Of Byte)
For Each bin In binFile
'filling sector to end (making sectorgap) in the middle of the file
If bin.SectorID <> lastSectorID Then
Dim gap = 2048 - (finalPack.Count Mod 2048)
For g = 0 To gap - 1
finalPack.Add(0)
Next
End If
'Adding currentfile Sector Size (for at least 0004)
bin.SectorSize = bin.Bytes.Count \ 2048
If bin.Bytes.Count Mod 2048 > 0 Then bin.SectorSize += 1
'adding currentfile and address for 0x0090
finalPack.AddRange(bin.Bytes)
'AddingBytesAfter
For g = 0 To bin.BytesAfter - 1
finalPack.Add(0)
Next
lastSectorID = bin.SectorID
Next
'Fill file to END of Sector
If finalPack.Count Mod 2048 > 0 Then
For g = 1 To (2048 - (finalPack.Count Mod 2048))
finalPack.Add(0)
Next g
End If
My.Computer.FileSystem.WriteAllBytes(OutPut_Dir & a.ToString("D4") & "_rus.bin", finalPack.ToArray, False)
Next
MsgBox("Export Done")
End Sub
Private Sub SceneryImport_Click(sender As Object, e As EventArgs) Handles SceneryImport.Click
If Not UserRadio.Checked Then MsgBox("YOU CAN IMPORT ONLY IN USER ISO!!!") : Exit Sub
If IsNothing(files1) Then MsgBox("PLEASE READ CD FILES FIRST!") : Exit Sub
Dim files = IO.Directory.GetFiles("D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\UnRLE\0057_ALL_SCENERY\TRANSLATED_RAW\", "*.bin").ToList
Dim filesSize = 0
'For Each f In files
' filesSize += My.Computer.FileSystem.GetFileInfo(f).Length
'Next
Dim curSector = files1(57).Sector
Dim max = files1(398).Sector
'MsgBox($"Sectors have - {max - curSector}" & vbCrLf & $"Sectors in files - {filesSize / 2048}") : Exit Sub
Dim iso = New ISOTools
Dim filnam = getFilnam()
For a = 57 To 397
'reading files
Debug.WriteLine("Working On......" & a.ToString("D4"))
Dim ind = files.FindIndex(Function(x) x.Contains(a.ToString("D4")))
If ind = -1 Then Debug.WriteLine("NOT FOUND") : Continue For
Dim impFile = My.Computer.FileSystem.ReadAllBytes(files(ind))
Dim SectorSizw As Integer = (UBound(impFile) + 1) / 2048
'Overload check
If curSector + SectorSizw >= max Then MsgBox("!!!OVERLOAD at file " & a) : Exit For
'debugfile move to end of disk
' If a = 570 Then curSector = 278100
iso.saveCDfile(filnam, curSector, UBound(impFile) + 1, impFile)
'Update SectorNumber and FileSize In FileArray
files1(a).Sizw = UBound(impFile) + 1
files1(a).Sector = curSector
curSector += SectorSizw
Next
'Update FileTable In ISO
iso.UpdateFileListTable(filnam, files1)
MsgBox("Files Imported")
End Sub
Private Sub Export1112RUS_Click(sender As Object, e As EventArgs) Handles Export1112RUS.Click
Dim files As New List(Of String)
files = IO.Directory.GetFiles("D:\Games\PSX\Persona.2.Innocent.Sin\Export\UnRLE\1112_ALL_CITIES_SCRIPTS", "*.TRNSL").ToList
Dim OutPut_Dir = "D:\Games\PSX\Persona.2.Innocent.Sin\Export\UnRLE\1112_ALL_CITIES_SCRIPTS\TRANSLATED_RAW\"
Dim iso = New ISOTools
Dim filnam = getFilnam()
Dim r = New rleTools
For a = 1112 To 1117
Dim fil = iso.getCDfile(filnam, files1(a).Sector, files1(a).Sizw)
Dim ind = files.FindIndex(Function(x) x.Contains(a.ToString("D4")))
'If file withoout translation
If ind = -1 Then
My.Computer.FileSystem.WriteAllBytes(OutPut_Dir & a.ToString("D4") & "_orig.bin", fil.ToArray, False) : Continue For
End If
Debug.WriteLine("Working On......" & a.ToString("D4"))
DeconstructFile(fil.ToArray) 'here is separated binfile
Dim curfile As rleFile = binFile(binFile.Count - 1)
Dim RusFile = My.Computer.FileSystem.ReadAllBytes(files(ind))
binFile(binFile.Count - 1).Bytes = r.decodeRLEnew(RusFile, curfile).ToArray 'Pack and replace 8th file
'АРХИВИРУЕМ МАССИВ ФАЙЛОВ ДЛЯ ЗАПИСИ В ОДИН ФАЙЛ
Dim lastSectorID As Integer = 0
Dim finalPack = New List(Of Byte)
Dim addresses = New List(Of Integer) 'Start Addr for all files
For Each bin In binFile
'filling sector to end (making sectorgap) in the middle of the file
If bin.SectorID <> lastSectorID Then
Dim gap = 2048 - (finalPack.Count Mod 2048)
For g = 0 To gap - 1
finalPack.Add(0)
Next
End If
'Adding currentfile Sector Size (for at least 0004)
bin.SectorSize = bin.Bytes.Count \ 2048
If bin.Bytes.Count Mod 2048 > 0 Then bin.SectorSize += 1
'adding currentfile and address for 0x0090
addresses.Add(finalPack.Count)
finalPack.AddRange(bin.Bytes)
'AddingBytesAfter
For g = 0 To bin.BytesAfter - 1
finalPack.Add(0)
Next
lastSectorID = bin.SectorID
Next
'Fill file to END of Sector
If finalPack.Count Mod 2048 > 0 Then
For g = 1 To (2048 - (finalPack.Count Mod 2048))
finalPack.Add(0)
Next g
End If
'SAVING POINTERS TABLE
SavePointersTableToFile(addresses, OutPut_Dir & a.ToString("D4") & ".pointers", binFile)
My.Computer.FileSystem.WriteAllBytes(OutPut_Dir & a.ToString("D4") & "_rus.bin", finalPack.ToArray, False)
Next
MsgBox("Export Done")
End Sub
Private Sub ConvertEventsForEditing_Click(sender As Object, e As EventArgs) Handles ConvertEventsForEditing.Click
Dim srcDir = "D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\UnRLE\0057_ALL_SCENERY"
Dim destDir = "D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\P2EP_Editing\"
Dim files As New List(Of String)
files = IO.Directory.GetFiles(srcDir, "*.txt").ToList
Dim s = New ScriptTools
For Each f In files
Dim a = Path.GetFileName(f)
s.ConvertForEdit(f, destDir & Path.GetFileName(f))
Next
MsgBox("Done!")
End Sub
Private Sub MakePointers_Click(sender As Object, e As EventArgs) Handles MakePointers.Click
If binFile.Count = 0 Or CDFileList.SelectedIndex = -1 Then Exit Sub
Dim fil = MakePointersArray()
If CreateBinDirCheck.Checked And CDFileList.SelectedIndex > -1 Then
Dim cat = WorkDir.Text & Strings.Left(FilnamLabel.Text, 4) & "_" & files1(CDFileList.SelectedIndex).Descript
If Not Directory.Exists(cat) Then
Directory.CreateDirectory(cat)
End If
ExportBinPath.Text = cat & "\"
End If
Dim filename = ExportBinPath.Text & Strings.Left(FilnamLabel.Text, 4)
If japRadio.Checked Then filename &= "_J"
If EngRadio.Checked Then filename &= "_E"
If UserRadio.Checked Then filename &= "_U"
'SAVING POINTERS TABLE
My.Computer.FileSystem.WriteAllBytes(filename & ".pointers", fil.ToArray, False)
'SavePointersTableToFile(addresses, filename & ".pointers", binFile)
'My.Computer.FileSystem.WriteAllBytes(filename & ".TEMPPACK", finalPack.ToArray, False)
Savedlbl.Text = "SAVED TO " & filename
End Sub
Private Sub SearchPointers_Click(sender As Object, e As EventArgs) Handles SearchPointers.Click
If CDFileList.Items.Count = 0 Or CDFileList.SelectedIndex = -1 Then Exit Sub
If Not IsNumeric(CompareBTS.Text) Then Exit Sub
Dim xxx = Convert.ToInt16(CompareBTS.Text)
Dim fil As List(Of Byte) = MakePointersArray()
Dim finfil = New List(Of Byte)
For a = 0 To xxx
If a > fil.Count - 1 Then Exit For
finfil.Add(fil(a))
Next
Dim cd = New ISOTools
Dim exeFile = cd.getCDfile(getFilnam, 27, 1812408)
'search in exe
Dim res = ByteSearch(exeFile.ToArray, finfil.ToArray)
If res > -1 Then MsgBox("FOUND! IN SLPS!" & vbCrLf & "Offset: " & res) : Exit Sub
'all files to video
For a = 0 To 864
Dim curFile = cd.getCDfile(getFilnam, files1(a).Sector, files1(a).Sizw)
'If curFile(0) = 1 Or curFile(0) = 2 Then Continue For 'IF ARCHIVE
'If curFile(1) = 1 Or curFile(1) = 2 Then Continue For
Debug.WriteLine("Searching... " & a)
res = ByteSearch(curFile.ToArray, finfil.ToArray)
If res > -1 Then MsgBox("FOUND! IN file #" & a & vbCrLf & "Offset: " & res) : Exit For
Next
End Sub
Public Function MakePointersArray()
'АРХИВИРУЕМ МАССИВ ФАЙЛОВ ДЛЯ ЗАПИСИ В ОДИН ФАЙЛ
Dim lastSectorID As Integer = 0
Dim finalPack = New List(Of Byte)
Dim addresses = New List(Of Integer) 'Start Addr for all files
For Each bin In binFile
'filling sector to end (making sectorgap) in the middle of the file
If bin.SectorID <> lastSectorID Then
Dim gap = 2048 - (finalPack.Count Mod 2048)
For g = 0 To gap - 1
finalPack.Add(0)
Next
End If
'Adding currentfile Sector Size (for at least 0004)
bin.SectorSize = bin.Bytes.Count \ 2048
If bin.Bytes.Count Mod 2048 > 0 Then bin.SectorSize += 1
addresses.Add(finalPack.Count)
finalPack.AddRange(bin.Bytes)
'AddingBytesAfter
For g = 0 To bin.BytesAfter - 1
finalPack.Add(0)
Next
lastSectorID = bin.SectorID
Next
'Fill file to END of Sector
If finalPack.Count Mod 2048 > 0 Then
For g = 1 To (2048 - (finalPack.Count Mod 2048))
finalPack.Add(0)
Next g
End If
'Making POINTERS TABLE
Dim fil = New List(Of Byte)
For a = 0 To binFile.Count - 1
'Dim curAddr = a * 8 + offset
Dim cursect As Int16 = addresses(a) \ 2048
Dim modSect As Int16 = addresses(a) Mod 2048
fil.Add(BitConverter.GetBytes(modSect)(0))
fil.Add(BitConverter.GetBytes(modSect)(1)) 'BE or LE???
fil.Add(BitConverter.GetBytes(cursect)(0))
fil.Add(BitConverter.GetBytes(cursect)(1)) 'BE or LE???
Dim bts As Integer = binFile(a).Bytes.Count
If Tim8Shift.Checked And binFile(a).Compr = 0 Then bts -= 8 'Its Uncompressed TIM??
fil.Add(BitConverter.GetBytes(bts)(0)) 'Saving Size of file
fil.Add(BitConverter.GetBytes(bts)(1)) 'BE or LE???
fil.Add(BitConverter.GetBytes(bts)(2))
fil.Add(BitConverter.GetBytes(bts)(3))
Next
Return fil
End Function
Private Sub RelpaceTextExecs_Click(sender As Object, e As EventArgs) Handles RelpaceTextExecs.Click
If CDFileList.Items.Count = 0 Or CDFileList.SelectedIndex = -1 Then Exit Sub
Dim sb = New List(Of Byte) From {&HEA, &H68, 0, &HC}
Dim cd = New ISOTools
Dim curFile = cd.getCDfile(getFilnam, files1(CDFileList.SelectedIndex).Sector, files1(CDFileList.SelectedIndex).Sizw)
Dim replaceCount As Integer = 0
For a = 0 To curFile.Count - 1 Step 4
If curFile(a) = sb(0) And curFile(a + 1) = sb(1) And curFile(a + 2) = sb(2) And curFile(a + 3) = sb(3) Then
replaceCount += 1
curFile(a) = 0 : curFile(a + 1) = &H40 : curFile(a + 2) = &H2 : curFile(a + 3) = &HC
End If
Next
cd.saveCDfile(getFilnam, files1(CDFileList.SelectedIndex).Sector, files1(CDFileList.SelectedIndex).Sizw, curFile.ToArray)
MsgBox("Found and replaced " & replaceCount & " text calls.")
End Sub
Private Sub ExportDUNGScripts_Click(sender As Object, e As EventArgs) Handles ExportDUNGScripts.Click
Dim lengths = New List(Of Integer)
lengths.AddRange({232, 228, 328, 336, 328, 336, 328, 336, 316, 332})
Dim DungScr = New List(Of PointerAndSize)
Dim initaddr = 114232
For Each l In lengths
DungScr.Add(New PointerAndSize With {.Addr = initaddr, .Sizw = l})
initaddr += l
Next
DungScr.Add(New PointerAndSize With {.Addr = 119336, .Sizw = 240})
DungScr.Add(New PointerAndSize With {.Addr = 119576, .Sizw = 240})
Dim cd = New ISOTools
Dim txt = New ScriptTools
'Reading filetable and make array
files1 = cd.makeFileList(UserPath.Text)
'files2 = cd.makeFileList(EngISOPath.Text)
Dim CurFile() As Byte = cd.getCDfile(UserPath.Text, files1(736).Sector, files1(736).Sizw).ToArray
'Dim EngFile() As Byte = cd.getCDfile(EngISOPath.Text, files2(736).Sector, files2(736).Sizw).ToArray 'loading files
Dim JRes = New ScriptFile
Dim ERes = New ScriptFile
For Each scr In DungScr
Dim JapBytes(scr.Sizw - 1) As Byte : Dim EngBytes(scr.Sizw - 1) As Byte
Array.Copy(CurFile, scr.Addr, JapBytes, 0, scr.Sizw) 'Array.Copy(EngFile, scr.Addr, EngBytes, 0, scr.Sizw) 'Copying Arrays
txt.ParseResource(JapBytes, JRes) : txt.ParseText(JRes, False)
'txt.ParseResource(EngBytes, ERes) : txt.ParseText(ERes, True)
Dim combText = txt.CombineParsedText(ERes, JRes)
Dim combResData = txt.compileData(JRes)
Dim fil = "D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\0736_DUNG_SCRIPTS\" & DungScr.IndexOf(scr).ToString("D4") & ".txt"
My.Computer.FileSystem.WriteAllText(fil, combResData & combText, False)
Next
End Sub
Private Sub ConvertContact_Click(sender As Object, e As EventArgs) Handles ExportContact.Click
Dim Japfiles = IO.Directory.GetFiles("D:\Games\PSX\Persona.2.Innocent.Sin\Export\1075_Battle_Contacts", "*_J").ToList
Dim Engfiles = IO.Directory.GetFiles("D:\Games\PSX\Persona.2.Innocent.Sin\Export\1075_Battle_Contacts", "*_E*").ToList
Dim OutPut_Dir = "D:\Games\PSX\Persona.2.Innocent.Sin\Export\1075_Battle_Contacts\Processing\Back\"
Dim scr = New ScriptTools
Dim cnt = 0
For Each fil In Japfiles
Dim contact As String = scr.MakeExportFile(My.Computer.FileSystem.ReadAllBytes(fil), My.Computer.FileSystem.ReadAllBytes(Engfiles(Japfiles.IndexOf(fil))), cnt)
Dim filename = OutPut_Dir & Path.GetFileName(fil) & "_exp.txt"
My.Computer.FileSystem.WriteAllText(filename, contact, False, Encoding.GetEncoding(1251))
Next
MsgBox("Converted " & cnt & " dialogs!", MsgBoxStyle.Information)
End Sub
Private Sub Summon_Export_Click(sender As Object, e As EventArgs) Handles Summon_Export.Click
Dim Japfiles = IO.Directory.GetFiles("D:\Games\PSX\Persona.2.Innocent.Sin\Export\0077_Summon_Text", "*_U").ToList
Dim Engfiles = IO.Directory.GetFiles("D:\Games\PSX\Persona.2.Innocent.Sin\Export\0077_Summon_Text", "*_E*").ToList
Dim OutPut_Dir = "D:\Games\PSX\Persona.2.Innocent.Sin\Export\0077_Summon_Text\Processing\Back\"
Dim scr = New ScriptTools
Dim cnt = 0
For Each fil In Japfiles
Dim contact As String = scr.MakeSummonExport(My.Computer.FileSystem.ReadAllBytes(fil), My.Computer.FileSystem.ReadAllBytes(Engfiles(Japfiles.IndexOf(fil))), cnt)
Dim filename = OutPut_Dir & Path.GetFileName(fil) & "_exp.txt"
My.Computer.FileSystem.WriteAllText(filename, contact, False, Encoding.GetEncoding(1251))
Next
MsgBox("Converted " & cnt & " dialogs!", MsgBoxStyle.Information)
End Sub
Private Sub Convert_Summon_Click(sender As Object, e As EventArgs) Handles Convert_Summon.Click
Dim Japfiles = IO.Directory.GetFiles("D:\Games\PSX\Persona.2.Innocent.Sin\Export\0077_Summon_Text\Processing\", "*.txt").ToList
DialogCounter = 0
Dim txt = New ScriptTools
For Each JFile In Japfiles
Debug.WriteLine("Converting " & JFile)
txt.convertSummonScript(JFile, DialogCounter)
Next
MsgBox("Success! Converted " & UBound(OpenFileDialog1.FileNames) + 1 & " file(s)" & vbCrLf & "Overall Dialogs Count: " & DialogCounter)
End Sub
Private Sub PSP_UNPACK_EVENT_BIN_Click(sender As Object, e As EventArgs) Handles PSP_UNPACK_EVENT_BIN.Click
Dim zips = New List(Of Byte())
Dim fil = My.Computer.FileSystem.ReadAllBytes("D:\Games\PSX\Persona 2 - Innocent Sin USA\PSP_GAME\USRDIR\pack\unpack\event.bin")
Dim filenames = New List(Of String)
For a = 0 To 396
Dim a1 = BitConverter.ToInt32(fil, a * 8)
Dim a2 = BitConverter.ToInt32(fil, a * 8 + 4)
Dim zzz(a2 - a1) As Byte
Array.Copy(fil, a1, zzz, 0, a2 - a1)
Dim fn = ""
For bbb = 0 To 8
fn &= Chr(zzz(bbb + 10))
Next
filenames.Add(fn)
Dim Decomp = DecompressGZip(zzz)
zips.Add(Decomp)
'My.Computer.FileSystem.WriteAllBytes("D:\Games\PSX\Persona 2 - Innocent Sin USA\PSP_GAME\USRDIR\pack\unpack\Event\" & a.ToString("D4") & "_" & (a + 181).ToString("D3") & "_" & fn, Decomp, False)
Next
Dim scr = New ScriptTools
For Each zip In zips
Dim filePack = New List(Of Byte())
Dim startRead As Integer = 48
For a = 0 To 8
Dim a1 = BitConverter.ToInt32(zip, a * 4 + 4)
Dim curFil(a1 - 1) As Byte
Array.Copy(zip, startRead, curFil, 0, a1)
startRead += a1
Dim BA = startRead Mod 16
If BA > 0 Then startRead += 16 - BA
filePack.Add(curFil)
Next
Dim b = zips.IndexOf(zip)
Dim fn = "D:\Games\PSX\Persona 2 - Innocent Sin USA\PSP_GAME\USRDIR\pack\unpack\Event\" & b.ToString("D4") & "_" & (b + 181).ToString("D3") & "_" & filenames(b)
'SAVING 8th LAST FILE!!!
Dim txt = scr.ConvertPSPTextFile(filePack.Last)
' My.Computer.FileSystem.WriteAllBytes(fn & ".txt", filePack.Last, False)
My.Computer.FileSystem.WriteAllText(fn & ".txt", txt, False, Encoding.GetEncoding(1251))
Next
'For Each z In
MsgBox("EXPORTED")
End Sub
Public Function DecompressGZip(bytesToDecompress As Byte()) As Byte()
Using stream As New GZipStream(New MemoryStream(bytesToDecompress), CompressionMode.Decompress)
Const size As Integer = 4096
Dim buffer As Byte() = New Byte(size - 1) {}
Using memoryStream As New MemoryStream()
Dim count As Integer
Do
count = stream.Read(buffer, 0, size)
If count > 0 Then
memoryStream.Write(buffer, 0, count)
End If
Loop While count > 0
Return memoryStream.ToArray()
End Using
End Using
End Function
End Class
Public Class PointerAndSize
Public Addr As Integer
Public Sizw As Integer
End Class