Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.IO
- Module Module1
- Sub Main()
- Using reader As BinaryReader = New BinaryReader(File.Open("C:\param.sfo", FileMode.Open))
- Dim sfoMagic As Integer = reader.ReadInt32() 'PSF
- Dim sfoVersion As Integer = reader.ReadInt32() 'Version
- Dim sfoKeyofs As Integer = reader.ReadInt32() 'Key table start offset
- Dim sfoValofs As Integer = reader.ReadInt32() 'Data table start offset
- Dim sfoCount As Integer = reader.ReadInt32() 'Index table entry count
- For i As Integer = 0 To sfoCount - 1
- Dim sfoNameofs As Integer = reader.ReadInt16()
- Dim sfoFmt As Integer = reader.ReadInt16()
- Dim sfoValsize As Integer = reader.ReadInt32()
- Dim sfoTotalsize As Integer = reader.ReadInt32()
- Dim sfoDataofs As Integer = reader.ReadInt32()
- Dim curOfs As Integer = reader.BaseStream.Position
- reader.BaseStream.Seek(sfoKeyofs + sfoNameofs, SeekOrigin.Begin)
- Dim c As Byte = reader.ReadByte()
- Dim name As String = ""
- Dim value As String = ""
- While c <> 0
- name &= Chr(c)
- c = reader.ReadByte()
- End While
- If name = "TITLE_ID" Then
- Console.WriteLine(name)
- reader.BaseStream.Seek(sfoValofs + sfoDataofs, SeekOrigin.Begin)
- For j As Integer = 0 To sfoValsize - 1
- value &= Chr(reader.ReadByte())
- Next
- Console.WriteLine(value)
- End If
- If name = "TITLE" Then
- Console.WriteLine(name)
- reader.BaseStream.Seek(sfoValofs + sfoDataofs, SeekOrigin.Begin)
- For j As Integer = 0 To sfoValsize - 1
- value &= Chr(reader.ReadByte())
- Next
- Console.WriteLine(value)
- End If
- If name = "CONTENT_ID" Then
- Console.WriteLine(name)
- reader.BaseStream.Seek(sfoValofs + sfoDataofs, SeekOrigin.Begin)
- For j As Integer = 0 To sfoValsize - 1
- value &= Chr(reader.ReadByte())
- Next
- Console.WriteLine(value)
- End If
- reader.BaseStream.Seek(curOfs, SeekOrigin.Begin)
- Next
- End Using
- End Sub
- End Module
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement