New summon script support
This commit is contained in:
@@ -539,7 +539,7 @@ Partial Class Form1
|
|||||||
|
|
||||||
Private Sub Convert_Summon_Click(sender As Object, e As EventArgs) Handles Convert_Summon.Click
|
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
|
Dim Japfiles = IO.Directory.GetFiles("D:\Games\PSX\Persona 2 - Batsu (NTSC-J) [SLPS-02825]\Export\UnRLE\0035_SUMMON_MSGS\Processing", "*.txt").ToList
|
||||||
|
|
||||||
DialogCounter = 0
|
DialogCounter = 0
|
||||||
|
|
||||||
|
|||||||
@@ -1210,9 +1210,9 @@ rleEnd:
|
|||||||
' 'If binFile.Count <> 153 Then MsgBox("WRONG0004 FILE!!! (files count not 152)") : Exit Sub
|
' 'If binFile.Count <> 153 Then MsgBox("WRONG0004 FILE!!! (files count not 152)") : Exit Sub
|
||||||
' Update0004ScriptTable()
|
' Update0004ScriptTable()
|
||||||
|
|
||||||
'Case 77
|
Case 35
|
||||||
' If binFile.Count <> 150 Then MsgBox("WRONG 0077 FILE!!! (files count not 150)") : Exit Sub
|
If binFile.Count <> 164 Then MsgBox("WRONG 0035 FILE!!! (files count not 164)") : Exit Sub
|
||||||
' Update0073SummonScriptTable(addresses) 'summon scripts table in 0073
|
Update0032SummonScriptTable(addresses) 'summon scripts table in 0032 & 33. Summon and mutation code
|
||||||
|
|
||||||
|
|
||||||
'Case 1075
|
'Case 1075
|
||||||
@@ -1316,46 +1316,32 @@ rleEnd:
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Sub Update0073SummonScriptTable(ByRef addr As List(Of Integer))
|
Public Sub Update0032SummonScriptTable(ByRef addr As List(Of Integer))
|
||||||
|
|
||||||
Dim cd = New ISOTools
|
Dim cd = New ISOTools
|
||||||
|
|
||||||
Dim fTable = cd.getCDfile(UserPath.Text, files1(73).Sector, files1(73).Sizw)
|
Dim fTable = cd.getCDfile(UserPath.Text, files1(32).Sector, files1(32).Sizw) 'Summon Code
|
||||||
Dim fTable2 = cd.getCDfile(UserPath.Text, files1(74).Sector, files1(74).Sizw)
|
Dim fTable2 = cd.getCDfile(UserPath.Text, files1(33).Sector, files1(33).Sizw) 'Mutation Code
|
||||||
|
|
||||||
Dim lastSize = 0
|
Dim lastSize = 0
|
||||||
For a = 0 To 149
|
For a = 0 To 163
|
||||||
Dim curAddr = a * 8 + 16324
|
Dim curAddr = a * 4 + &H35BC
|
||||||
Dim curAddr2 = a * 8 + 15120
|
Dim curAddr2 = a * 4 + &H2D8C
|
||||||
|
|
||||||
Dim cursect As Int16 = addr(a) \ 2048
|
|
||||||
Dim modSect As Int16 = addr(a) Mod 2048
|
|
||||||
|
|
||||||
fTable(curAddr) = BitConverter.GetBytes(modSect)(0)
|
|
||||||
fTable(curAddr + 1) = BitConverter.GetBytes(modSect)(1) 'BE or LE???
|
|
||||||
fTable(curAddr + 2) = BitConverter.GetBytes(cursect)(0)
|
|
||||||
fTable(curAddr + 3) = BitConverter.GetBytes(cursect)(1) 'BE or LE???
|
|
||||||
fTable2(curAddr2) = BitConverter.GetBytes(modSect)(0)
|
|
||||||
fTable2(curAddr2 + 1) = BitConverter.GetBytes(modSect)(1) 'BE or LE???
|
|
||||||
fTable2(curAddr2 + 2) = BitConverter.GetBytes(cursect)(0)
|
|
||||||
fTable2(curAddr2 + 3) = BitConverter.GetBytes(cursect)(1) 'BE or LE???
|
|
||||||
|
|
||||||
Dim sectorsToRead = 1
|
|
||||||
If modSect + binFile(a).Size > 2048 Then sectorsToRead = 2
|
|
||||||
fTable(curAddr + 4) = sectorsToRead
|
|
||||||
fTable(curAddr + 5) = 0
|
|
||||||
fTable(curAddr + 6) = 1
|
|
||||||
fTable(curAddr + 7) = 0
|
|
||||||
fTable2(curAddr2 + 4) = sectorsToRead
|
|
||||||
fTable2(curAddr2 + 5) = 0
|
|
||||||
fTable2(curAddr2 + 6) = 1
|
|
||||||
fTable2(curAddr2 + 7) = 0
|
|
||||||
|
|
||||||
|
Dim offset = BitConverter.GetBytes(addr(a))
|
||||||
|
|
||||||
|
fTable(curAddr) = offset(0)
|
||||||
|
fTable(curAddr + 1) = offset(1)
|
||||||
|
fTable(curAddr + 2) = offset(2)
|
||||||
|
fTable(curAddr + 3) = 2
|
||||||
|
fTable2(curAddr2) = offset(0)
|
||||||
|
fTable2(curAddr2 + 1) = offset(1)
|
||||||
|
fTable2(curAddr2 + 2) = offset(2)
|
||||||
|
fTable2(curAddr2 + 3) = 2
|
||||||
Next
|
Next
|
||||||
|
|
||||||
cd.saveCDfile(UserPath.Text, files1(73).Sector, files1(73).Sizw, fTable.ToArray)
|
cd.saveCDfile(UserPath.Text, files1(32).Sector, files1(32).Sizw, fTable.ToArray)
|
||||||
cd.saveCDfile(UserPath.Text, files1(74).Sector, files1(74).Sizw, fTable2.ToArray)
|
cd.saveCDfile(UserPath.Text, files1(33).Sector, files1(33).Sizw, fTable2.ToArray)
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|||||||
@@ -1262,7 +1262,7 @@ endlineTest:
|
|||||||
Public Function makeSummonUniversalLine(ByVal inputBytes As Byte(), commented As Boolean)
|
Public Function makeSummonUniversalLine(ByVal inputBytes As Byte(), commented As Boolean)
|
||||||
|
|
||||||
Dim reader As Integer = 0
|
Dim reader As Integer = 0
|
||||||
Dim str = If(commented, "// ", "")
|
Dim str = If(commented, "\\ ", "")
|
||||||
|
|
||||||
Do While reader < UBound(inputBytes)
|
Do While reader < UBound(inputBytes)
|
||||||
Dim code = BitConverter.ToInt16(inputBytes, reader)
|
Dim code = BitConverter.ToInt16(inputBytes, reader)
|
||||||
@@ -1282,7 +1282,7 @@ endlineTest:
|
|||||||
|
|
||||||
If code And &H1000 Then
|
If code And &H1000 Then
|
||||||
|
|
||||||
If code = &H1101 Then str &= vbCrLf & If(commented, "// ", "") : Continue Do
|
If code = &H1101 Then str &= vbCrLf & If(commented, "\\ ", "") : Continue Do
|
||||||
If code = &H1131 Then str &= vbTab : Continue Do
|
If code = &H1131 Then str &= vbTab : Continue Do
|
||||||
|
|
||||||
Dim hex = code.ToString("X4")
|
Dim hex = code.ToString("X4")
|
||||||
@@ -1323,80 +1323,30 @@ endlineTest:
|
|||||||
Dim x = 0
|
Dim x = 0
|
||||||
Dim accum = New List(Of Byte)
|
Dim accum = New List(Of Byte)
|
||||||
Dim linesAccum = New List(Of String)
|
Dim linesAccum = New List(Of String)
|
||||||
Dim currentDialog As Integer
|
|
||||||
|
|
||||||
Do
|
Do
|
||||||
|
|
||||||
'Comments to end of line!
|
'Comments to end of line!
|
||||||
If tx(x) = "\" And tx(x + 1) = "\" Then
|
If tx(x) = "\" And tx(x + 1) = "\" Then
|
||||||
getEndOfLine(tx, x)
|
getEndOfLine(tx, x)
|
||||||
idsection = True
|
|
||||||
Continue Do
|
Continue Do
|
||||||
End If
|
End If
|
||||||
If tx(x) = "#" Then TextPointers.Add(accum.Count) : x += 3 : currentDialog += 1 : Continue Do 'SimpleClose
|
|
||||||
'SPEC_CODES
|
'SPEC_CODES
|
||||||
If tx(x) = "[" Then
|
If tx(x) = "[" Then
|
||||||
Dim skRes = getFromSkobki(tx, x)
|
Dim skRes = getFromSkobki(tx, x)
|
||||||
If IsNumeric(skRes) And idsection Then
|
If Len(skRes) > 4 Then
|
||||||
idsection = False
|
|
||||||
DialCount += 1
|
|
||||||
x = x + 2
|
|
||||||
Continue Do 'its simple ID
|
|
||||||
End If
|
|
||||||
|
|
||||||
If skRes = "END623" Or skRes = "END" Or skRes = "311" Then
|
|
||||||
Dim curCount = accum.Count
|
|
||||||
currentDialog += 1
|
|
||||||
x += 2
|
|
||||||
Select Case skRes
|
|
||||||
Case "END623"
|
|
||||||
accum.AddRange({&H6, &H11, &H2, &H11, &H3, &H11})
|
|
||||||
Case "END"
|
|
||||||
accum.AddRange({&H6, &H11, &H3, &H11})
|
|
||||||
Case "311"
|
|
||||||
accum.AddRange({&H3, &H11})
|
|
||||||
End Select
|
|
||||||
Exit Do
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim spl = Split(skRes, "=")
|
|
||||||
|
|
||||||
If UBound(spl) = 1 Then 'Code = parsing
|
|
||||||
|
|
||||||
Select Case spl(0)
|
|
||||||
Case "0e"
|
|
||||||
accum.AddRange({&HE, &H12, spl(1), 0})
|
|
||||||
Case "1e"
|
|
||||||
accum.AddRange({&H1E, &H12, spl(1), 0})
|
|
||||||
Case "p"
|
|
||||||
accum.AddRange({&H5, &H12, spl(1), 0})
|
|
||||||
Case "c"
|
|
||||||
accum.AddRange({&H1D, &H12, spl(1), 0})
|
|
||||||
Case "col"
|
|
||||||
Dim ind = ColorCodes.Find(Function(q) q.value = spl(1)).code 'old style color
|
|
||||||
accum.AddRange({&H1D, &H12, ind, 0})
|
|
||||||
End Select
|
|
||||||
|
|
||||||
|
|
||||||
Continue Do
|
|
||||||
|
|
||||||
Else '2 hex codes parsing
|
|
||||||
|
|
||||||
'test specCodes
|
|
||||||
Dim spec As CodeObject = SpecialCodes.Find(Function(q) q.value = skRes) 'Special code convert IF
|
Dim spec As CodeObject = SpecialCodes.Find(Function(q) q.value = skRes) 'Special code convert IF
|
||||||
If Not IsNothing(spec) Then
|
If Not IsNothing(spec) Then
|
||||||
accum.AddRange(BitConverter.GetBytes(Convert.ToInt16(spec.code)).ToList)
|
accum.AddRange(BitConverter.GetBytes(Convert.ToInt16(spec.code)).ToList)
|
||||||
Continue Do
|
Continue Do
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If skRes.Length = 4 Then 'Try to parse other hex codes
|
|
||||||
accum.AddRange(SoapHexBinary.Parse(skRes).Value.ToList)
|
|
||||||
'x += 2
|
|
||||||
Continue Do
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
If skRes = "col=pink" Then accum.AddRange({&H2E, &H12, 5, 0}) : Continue Do
|
||||||
|
If skRes = "col=white" Then accum.AddRange({&H2E, &H12, 1, 0}) : Continue Do
|
||||||
|
Dim code = SoapHexBinary.Parse(skRes).Value.ToList
|
||||||
|
accum.AddRange({code(1), code(0)})
|
||||||
|
|
||||||
|
If code(1) = 3 & code(0) = &H11 Then Exit Do
|
||||||
|
Continue Do
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
@@ -1404,10 +1354,6 @@ endlineTest:
|
|||||||
If tx(x) & tx(x + 1) = vbCrLf Then accum.AddRange({&H1, &H11}) : x += 2 : Continue Do
|
If tx(x) & tx(x + 1) = vbCrLf Then accum.AddRange({&H1, &H11}) : x += 2 : Continue Do
|
||||||
If tx(x) = vbLf Then accum.AddRange({&H1, &H11}) : x += 1 : Continue Do
|
If tx(x) = vbLf Then accum.AddRange({&H1, &H11}) : x += 1 : Continue Do
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'SIMPLE TEXT ADDING
|
'SIMPLE TEXT ADDING
|
||||||
|
|
||||||
Dim SimpleTextAccum = New List(Of Byte)
|
Dim SimpleTextAccum = New List(Of Byte)
|
||||||
@@ -1428,15 +1374,9 @@ endlineTest:
|
|||||||
accum.AddRange(SimpleTextAccum) 'attach textline
|
accum.AddRange(SimpleTextAccum) 'attach textline
|
||||||
If SimpleTextAccum.Count And 1 Then accum.Add(0) ' if and 1 - add empty byte
|
If SimpleTextAccum.Count And 1 Then accum.Add(0) ' if and 1 - add empty byte
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
x += 1
|
x += 1
|
||||||
Loop While x < tx.Length - 1
|
Loop While x < tx.Length - 1
|
||||||
|
|
||||||
|
|
||||||
'TextPointers.RemoveAt(TextPointers.Count - 1) 'Remove Last Pointer
|
|
||||||
|
|
||||||
'updateing text pointers
|
|
||||||
'Сохраняем выходной файл
|
'Сохраняем выходной файл
|
||||||
My.Computer.FileSystem.WriteAllBytes(inputJfile & ".SummonTRNSL", accum.ToArray, False)
|
My.Computer.FileSystem.WriteAllBytes(inputJfile & ".SummonTRNSL", accum.ToArray, False)
|
||||||
|
|
||||||
|
|||||||
BIN
p2isPSX_CDToolkit/bin/Debug/FastLZSS.dll
Normal file
BIN
p2isPSX_CDToolkit/bin/Debug/FastLZSS.dll
Normal file
Binary file not shown.
@@ -30,9 +30,9 @@ IgorCardCD
|
|||||||
SearchCODE
|
SearchCODE
|
||||||
CountCODE
|
CountCODE
|
||||||
JewelCODE
|
JewelCODE
|
||||||
SomeCode
|
SummoCODE
|
||||||
SomeCode
|
MutatCODE
|
||||||
SomeCode
|
CPantCODE
|
||||||
SUMMON_MSGS
|
SUMMON_MSGS
|
||||||
|
|
||||||
|
|
||||||
@@ -372,7 +372,7 @@ Maya
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Trish1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -709,8 +709,8 @@ fsDESC
|
|||||||
fs2DESC
|
fs2DESC
|
||||||
|
|
||||||
|
|
||||||
|
PersData
|
||||||
|
DemonData
|
||||||
CityPack1
|
CityPack1
|
||||||
CityPack2
|
CityPack2
|
||||||
CityPack3
|
CityPack3
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user