Add Windows build

Imported from PS Multi Tools v14.4
This commit is contained in:
SvenGDK
2024-08-18 20:03:12 +02:00
parent 74364ee94c
commit 1f271dd9a8
19 changed files with 2176 additions and 0 deletions
+6
View File
@@ -62,3 +62,9 @@ fastlane/screenshots/**/*.png
fastlane/test_output
**/.DS_Store
*.suo
*.user
.vs
bin
obj
packages
+25
View File
@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.10.35122.118
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PS Classics fPKG Builder", "PS Classics fPKG Builder\PS Classics fPKG Builder.vbproj", "{39038E46-FDF1-4E8E-9524-427F8B5A7BD2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{39038E46-FDF1-4E8E-9524-427F8B5A7BD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{39038E46-FDF1-4E8E-9524-427F8B5A7BD2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{39038E46-FDF1-4E8E-9524-427F8B5A7BD2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{39038E46-FDF1-4E8E-9524-427F8B5A7BD2}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {09F10D6B-375A-41E1-9C86-04D9BABC2310}
EndGlobalSection
EndGlobal
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1" />
</startup>
</configuration>
@@ -0,0 +1,9 @@
<Application x:Class="Application"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:PS_Classics_fPKG_Builder"
StartupUri="PSClassicsfPKGBuilder.xaml">
<Application.Resources>
</Application.Resources>
</Application>
@@ -0,0 +1,6 @@
Class Application
' Application-level events, such as Startup, Exit, and DispatcherUnhandledException
' can be handled in this file.
End Class
@@ -0,0 +1,59 @@
Imports System
Imports System.Globalization
Imports System.Reflection
Imports System.Resources
Imports System.Runtime.InteropServices
Imports System.Windows
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("PS Classics fPKG Builder")>
<Assembly: AssemblyDescription("Create PS1, PS2 & PSP game fake packages for the PS4 / PS5.")>
<Assembly: AssemblyCompany("SvenGDK")>
<Assembly: AssemblyProduct("PS Classics fPKG Builder")>
<Assembly: AssemblyCopyright("Copyright © SvenGDK 2024")>
<Assembly: AssemblyTrademark("SvenGDK")>
<Assembly: ComVisible(false)>
'In order to begin building localizable applications, set
'<UICulture>CultureYouAreCodingWith</UICulture> in your .vbproj file
'inside a <PropertyGroup>. For example, if you are using US english
'in your source files, set the <UICulture> to "en-US". Then uncomment the
'NeutralResourceLanguage attribute below. Update the "en-US" in the line
'below to match the UICulture setting in the project file.
'<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found.
'1st parameter: where theme specific resource dictionaries are located
'(used if a resource is not found in the page,
' or application resource dictionaries)
'2nd parameter: where the generic resource dictionary is located
'(used if a resource is not found in the page,
'app, and any theme specific resource dictionaries)
<Assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("ddc2f2ec-c598-4371-a07d-f2c2de8bdf64")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
@@ -0,0 +1,121 @@
#If _MyType <> "Empty" Then
Namespace My
''' <summary>
''' Module used to define the properties that are available in the My Namespace for WPF
''' </summary>
''' <remarks></remarks>
<Global.Microsoft.VisualBasic.HideModuleName()> _
Module MyWpfExtension
Private s_Computer As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Devices.Computer)
Private s_User As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.ApplicationServices.User)
Private s_Windows As New ThreadSafeObjectProvider(Of MyWindows)
Private s_Log As New ThreadSafeObjectProvider(Of Global.Microsoft.VisualBasic.Logging.Log)
''' <summary>
''' Returns the application object for the running application
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Application() As Application
Get
Return CType(Global.System.Windows.Application.Current, Application)
End Get
End Property
''' <summary>
''' Returns information about the host computer.
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Computer() As Global.Microsoft.VisualBasic.Devices.Computer
Get
Return s_Computer.GetInstance()
End Get
End Property
''' <summary>
''' Returns information for the current user. If you wish to run the application with the current
''' Windows user credentials, call My.User.InitializeWithWindowsUser().
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property User() As Global.Microsoft.VisualBasic.ApplicationServices.User
Get
Return s_User.GetInstance()
End Get
End Property
''' <summary>
''' Returns the application log. The listeners can be configured by the application's configuration file.
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Log() As Global.Microsoft.VisualBasic.Logging.Log
Get
Return s_Log.GetInstance()
End Get
End Property
''' <summary>
''' Returns the collection of Windows defined in the project.
''' </summary>
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
Friend ReadOnly Property Windows() As MyWindows
<Global.System.Diagnostics.DebuggerHidden()> _
Get
Return s_Windows.GetInstance()
End Get
End Property
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _
<Global.Microsoft.VisualBasic.MyGroupCollection("System.Windows.Window", "Create__Instance__", "Dispose__Instance__", "My.MyWpfExtenstionModule.Windows")> _
Friend NotInheritable Class MyWindows
<Global.System.Diagnostics.DebuggerHidden()> _
Private Shared Function Create__Instance__(Of T As {New, Global.System.Windows.Window})(ByVal Instance As T) As T
If Instance Is Nothing Then
If s_WindowBeingCreated IsNot Nothing Then
If s_WindowBeingCreated.ContainsKey(GetType(T)) = True Then
Throw New Global.System.InvalidOperationException("The window cannot be accessed via My.Windows from the Window constructor.")
End If
Else
s_WindowBeingCreated = New Global.System.Collections.Hashtable()
End If
s_WindowBeingCreated.Add(GetType(T), Nothing)
Return New T()
s_WindowBeingCreated.Remove(GetType(T))
Else
Return Instance
End If
End Function
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
<Global.System.Diagnostics.DebuggerHidden()> _
Private Sub Dispose__Instance__(Of T As Global.System.Windows.Window)(ByRef instance As T)
instance = Nothing
End Sub
<Global.System.Diagnostics.DebuggerHidden()> _
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Never)> _
Public Sub New()
MyBase.New()
End Sub
<Global.System.ThreadStatic()> Private Shared s_WindowBeingCreated As Global.System.Collections.Hashtable
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function Equals(ByVal o As Object) As Boolean
Return MyBase.Equals(o)
End Function
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function GetHashCode() As Integer
Return MyBase.GetHashCode
End Function
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> _
Friend Overloads Function [GetType]() As Global.System.Type
Return GetType(MyWindows)
End Function
<Global.System.ComponentModel.EditorBrowsable(Global.System.ComponentModel.EditorBrowsableState.Never)> Public Overrides Function ToString() As String
Return MyBase.ToString
End Function
End Class
End Module
End Namespace
Partial Class Application
Inherits Global.System.Windows.Application
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")> _
<Global.System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1822:MarkMembersAsStatic")> _
Friend ReadOnly Property Info() As Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo
<Global.System.Diagnostics.DebuggerHidden()> _
Get
Return New Global.Microsoft.VisualBasic.ApplicationServices.AssemblyInfo(Global.System.Reflection.Assembly.GetExecutingAssembly())
End Get
End Property
End Class
#End If
@@ -0,0 +1,62 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:$clrversion$
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("$safeprojectname$.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set(ByVal value As Global.System.Globalization.CultureInfo)
resourceCulture = value
End Set
End Property
End Module
End Namespace
@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
@@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.PS_Classics_fPKG_Builder.My.MySettings
Get
Return Global.PS_Classics_fPKG_Builder.My.MySettings.Default
End Get
End Property
End Module
End Namespace
@@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>
@@ -0,0 +1,163 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{39038E46-FDF1-4E8E-9524-427F8B5A7BD2}</ProjectGuid>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{F184B08F-C81C-45F6-A57F-5ABD9991F28F}</ProjectTypeGuids>
<OutputType>WinExe</OutputType>
<RootNamespace>PS_Classics_fPKG_Builder</RootNamespace>
<AssemblyName>PS Classics fPKG Builder</AssemblyName>
<TargetFrameworkVersion>v4.8.1</TargetFrameworkVersion>
<MyType>Custom</MyType>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<IncrementalBuild>true</IncrementalBuild>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>PS Classics fPKG Builder.xml</DocumentationFile>
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DebugSymbols>false</DebugSymbols>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<IncrementalBuild>false</IncrementalBuild>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>PS Classics fPKG Builder.xml</DocumentationFile>
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42314</NoWarn>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>v14Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="DiscUtils.Core, Version=0.16.0.0, Culture=neutral, PublicKeyToken=5fa5b410cc9c6289, processorArchitecture=MSIL">
<HintPath>..\packages\DiscUtils.Core.0.16.13\lib\net45\DiscUtils.Core.dll</HintPath>
</Reference>
<Reference Include="DiscUtils.Iso9660, Version=0.16.0.0, Culture=neutral, PublicKeyToken=5fa5b410cc9c6289, processorArchitecture=MSIL">
<HintPath>..\packages\DiscUtils.Iso9660.0.16.13\lib\net45\DiscUtils.Iso9660.dll</HintPath>
</Reference>
<Reference Include="DiscUtils.Streams, Version=0.16.0.0, Culture=neutral, PublicKeyToken=5fa5b410cc9c6289, processorArchitecture=MSIL">
<HintPath>..\packages\DiscUtils.Streams.0.16.13\lib\net45\DiscUtils.Streams.dll</HintPath>
</Reference>
<Reference Include="DiscUtils.Udf, Version=0.16.0.0, Culture=neutral, PublicKeyToken=5fa5b410cc9c6289, processorArchitecture=MSIL">
<HintPath>..\packages\DiscUtils.Udf.0.16.13\lib\net45\DiscUtils.Udf.dll</HintPath>
</Reference>
<Reference Include="LibOrbisPkg">
<HintPath>..\..\..\..\Desktop\Classics\PS2\LibOrbisPkg.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="Application.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</ApplicationDefinition>
<Compile Include="PS1Game.vb" />
<Compile Include="PS2Game.vb" />
<Compile Include="PSClassicsfPKGBuilder.xaml.vb">
<DependentUpon>PSClassicsfPKGBuilder.xaml</DependentUpon>
</Compile>
<Compile Include="Application.xaml.vb">
<DependentUpon>Application.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="Utils.vb" />
<Page Include="PSClassicsfPKGBuilder.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Import Include="System.Threading.Tasks" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows" />
<Import Include="System.Windows.Controls" />
<Import Include="System.Windows.Data" />
<Import Include="System.Windows.Documents" />
<Import Include="System.Windows.Input" />
<Import Include="System.Windows.Shapes" />
<Import Include="System.Windows.Media" />
<Import Include="System.Windows.Media.Imaging" />
<Import Include="System.Windows.Navigation" />
</ItemGroup>
<ItemGroup>
<Compile Include="My Project\AssemblyInfo.vb">
<SubType>Code</SubType>
</Compile>
<Compile Include="My Project\MyExtensions\MyWpfExtension.vb">
<VBMyExtensionTemplateID>Microsoft.VisualBasic.WPF.MyExtension</VBMyExtensionTemplateID>
<VBMyExtensionTemplateVersion>1.0.0.0</VBMyExtensionTemplateVersion>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
</EmbeddedResource>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Resource Include="v14Icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>
@@ -0,0 +1,35 @@
Imports System.IO
Public Class PS1Game
Public Shared Function GetPS1GameTitleFromDatabaseList(GameID As String) As String
Dim FoundGameTitle As String = ""
For Each GameTitle As String In File.ReadLines(My.Computer.FileSystem.CurrentDirectory + "\Tools\ps1ids.txt")
If GameTitle.Contains(GameID) Then
FoundGameTitle = GameTitle.Split(";"c)(1)
Exit For
End If
Next
If String.IsNullOrEmpty(FoundGameTitle) Then
Return ""
Else
Return FoundGameTitle
End If
End Function
Public Shared Function IsGameProtected(GameID As String) As String
Dim FoundValue As String = ""
For Each GameIDInFile As String In File.ReadLines(My.Computer.FileSystem.CurrentDirectory + "\Tools\libcrypt.txt")
If GameIDInFile.Contains(GameID) Then
FoundValue = GameIDInFile.Split(" "c)(1)
Exit For
End If
Next
Return FoundValue
End Function
End Class
@@ -0,0 +1,61 @@
Imports System.IO
Public Class PS2Game
Public Shared Function GetPS2GameID(GameISO As String) As String
Dim GameID As String = ""
Using SevenZip As New Process()
SevenZip.StartInfo.FileName = My.Computer.FileSystem.CurrentDirectory + "\Tools\7z.exe"
SevenZip.StartInfo.Arguments = "l -ba """ + GameISO + """"
SevenZip.StartInfo.RedirectStandardOutput = True
SevenZip.StartInfo.UseShellExecute = False
SevenZip.StartInfo.CreateNoWindow = True
SevenZip.Start()
'Read the output
Dim OutputReader As StreamReader = SevenZip.StandardOutput
Dim ProcessOutput As String() = OutputReader.ReadToEnd().Split(New String() {vbCrLf}, StringSplitOptions.None)
If ProcessOutput.Length > 0 Then
For Each Line As String In ProcessOutput
If Line.Contains("SLES_") Or Line.Contains("SLUS_") Or Line.Contains("SCES_") Or Line.Contains("SCUS_") Then
If Line.Contains("Volume:") Then 'ID found in the ISO Header
If Line.Split(New String() {"Volume: "}, StringSplitOptions.RemoveEmptyEntries).Length > 0 Then
GameID = Line.Split(New String() {"Volume: "}, StringSplitOptions.RemoveEmptyEntries)(1)
Exit For
End If
Else 'ID found in the ISO files
If String.Join(" ", Line.Split(New Char() {}, StringSplitOptions.RemoveEmptyEntries)).Split(" "c).Length > 4 Then
GameID = String.Join(" ", Line.Split(New Char() {}, StringSplitOptions.RemoveEmptyEntries)).Split(" "c)(5).Trim()
Exit For
End If
End If
End If
Next
End If
End Using
Return GameID
End Function
Public Shared Function GetPS2GameTitleFromDatabaseList(GameID As String) As String
Dim FoundGameTitle As String = ""
GameID = GameID.Replace("-", "")
For Each GameTitle As String In File.ReadLines(My.Computer.FileSystem.CurrentDirectory + "\Tools\ps2ids.txt")
If GameTitle.Contains(GameID) Then
FoundGameTitle = GameTitle.Split(";"c)(1)
Exit For
End If
Next
If String.IsNullOrEmpty(FoundGameTitle) Then
Return "Unknown PS2 game"
Else
Return FoundGameTitle
End If
End Function
End Class
@@ -0,0 +1,185 @@
<Window x:Class="PSClassicsfPKGBuilder"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PS_Classics_fPKG_Builder"
mc:Ignorable="d"
Title="PS Classics fPKG Builder [by SvenGDK]" Height="655" Width="1000" Background="#2D2D30" ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen">
<Grid>
<TabControl>
<TabItem Header="PS1 Classics">
<Grid Background="#2D2D30">
<TextBlock HorizontalAlignment="Left" Margin="19,184,0,0" TextWrapping="Wrap" Text="Disc 1 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,160,0,0" TextWrapping="Wrap" Text="Discs Configuration" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,208,0,0" TextWrapping="Wrap" Text="Disc 2 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,231,0,0" TextWrapping="Wrap" Text="Disc 3 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,254,0,0" TextWrapping="Wrap" Text="Disc 4 :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PS1SelectedDisc1TextBox" HorizontalAlignment="Left" Margin="62,184,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="PS1SelectedDisc2TextBox" HorizontalAlignment="Left" Margin="62,207,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="PS1SelectedDisc3TextBox" HorizontalAlignment="Left" Margin="62,230,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="PS1SelectedDisc4TextBox" HorizontalAlignment="Left" Margin="62,253,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<Button x:Name="BrowsePS1Disc1Button" Content="Browse" HorizontalAlignment="Left" Margin="567,183,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS1Disc2Button" Content="Browse" HorizontalAlignment="Left" Margin="567,206,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS1Disc3Button" Content="Browse" HorizontalAlignment="Left" Margin="567,229,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS1Disc4Button" Content="Browse" HorizontalAlignment="Left" Margin="567,252,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,10,0,0" TextWrapping="Wrap" Text="Create a PS1 fPKG" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,34,0,0" TextWrapping="Wrap" Text="PKG Details" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,58,0,0" TextWrapping="Wrap" Text="Icon :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPS1IconTextBox" HorizontalAlignment="Left" Margin="130,58,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<Button x:Name="BrowsePS1IconButton" Content="Browse" HorizontalAlignment="Left" Margin="567,57,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,81,0,0" TextWrapping="Wrap" Text="Background Image :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPS1BGTextBox" HorizontalAlignment="Left" Margin="130,81,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<Button x:Name="BrowsePS1StartupImageButton" Content="Browse" HorizontalAlignment="Left" Margin="567,80,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,104,0,0" TextWrapping="Wrap" Text="Title :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PS1TitleTextBox" HorizontalAlignment="Left" Margin="130,104,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<TextBlock HorizontalAlignment="Left" Margin="19,127,0,0" TextWrapping="Wrap" Text="NP Title :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PS1NPTitleTextBox" HorizontalAlignment="Left" Margin="130,127,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<Button x:Name="BuildPS1fPKGButton" Content="Build fPKG" HorizontalAlignment="Left" Margin="676,57,0,0" VerticalAlignment="Top" Width="198" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="676,34,0,0" TextWrapping="Wrap" Text="PKG Build Options" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,291,0,0" TextWrapping="Wrap" Text="Emulator Configuration &amp; Fixes" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBox x:Name="SelectedPS1TXTConfigTextBox" HorizontalAlignment="Left" Margin="88,315,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="474"/>
<TextBlock HorizontalAlignment="Left" Margin="19,316,0,0" TextWrapping="Wrap" Text="TXT Config :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPS1LUAConfigTextBox" HorizontalAlignment="Left" Margin="88,338,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="474"/>
<TextBlock HorizontalAlignment="Left" Margin="19,339,0,0" TextWrapping="Wrap" Text="LUA Config :" VerticalAlignment="Top" Foreground="White"/>
<CheckBox x:Name="PS1SkipBootlogoCheckBox" Content="Skip Bootlogo" HorizontalAlignment="Left" Margin="19,396,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="False"/>
<CheckBox x:Name="PS1EmulateAnalogSticksCheckBox" Content="Emulate Analog Sticks" HorizontalAlignment="Left" Margin="19,416,0,0" VerticalAlignment="Top" Foreground="White"/>
<Button x:Name="BrowsePS1TXTConfigButton" Content="Browse" HorizontalAlignment="Left" Margin="567,314,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS1LUAConfigButton" Content="Browse" HorizontalAlignment="Left" Margin="567,337,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,372,0,0" TextWrapping="Wrap" Text="More Emulator Options" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<CheckBox x:Name="PS1Force60HzCheckBox" Content="Force 60Hz" HorizontalAlignment="Left" Margin="19,436,0,0" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="190,395,0,0" TextWrapping="Wrap" Text="Upscaling :" VerticalAlignment="Top" Foreground="White"/>
<ComboBox x:Name="PS1UpscalingComboBox" HorizontalAlignment="Left" Margin="259,392,0,0" VerticalAlignment="Top" Width="64" SelectedIndex="2">
<ComboBoxItem Content="6"/>
<ComboBoxItem Content="4"/>
<ComboBoxItem Content="2"/>
<ComboBoxItem Content="1"/>
</ComboBox>
<CheckBox x:Name="PS1GunconCheckBox" Content="Guncon" HorizontalAlignment="Left" Margin="19,456,0,0" VerticalAlignment="Top" Foreground="White"/>
</Grid>
</TabItem>
<TabItem Header="PS2 Classics">
<Grid Background="#2D2D30">
<TextBlock HorizontalAlignment="Left" Margin="19,10,0,0" TextWrapping="Wrap" Text="Create a PS2 fPKG" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,180,0,0" TextWrapping="Wrap" Text="Disc 1 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,156,0,0" TextWrapping="Wrap" Text="Discs Configuration" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,204,0,0" TextWrapping="Wrap" Text="Disc 2 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,227,0,0" TextWrapping="Wrap" Text="Disc 3 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,250,0,0" TextWrapping="Wrap" Text="Disc 4 :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,273,0,0" TextWrapping="Wrap" Text="Disc 5 :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedDisc1TextBox" HorizontalAlignment="Left" Margin="62,180,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="SelectedDisc2TextBox" HorizontalAlignment="Left" Margin="62,203,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="SelectedDisc3TextBox" HorizontalAlignment="Left" Margin="62,226,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="SelectedDisc4TextBox" HorizontalAlignment="Left" Margin="62,249,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<TextBox x:Name="SelectedDisc5TextBox" HorizontalAlignment="Left" Margin="62,272,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="500"/>
<CheckBox x:Name="PS2RestartEmulatorOnDiscChangeCheckBox" Content="Restart emulator on disc change" HorizontalAlignment="Left" Margin="676,180,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="False"/>
<TextBlock HorizontalAlignment="Left" Margin="676,156,0,0" TextWrapping="Wrap" Text="Disc Options" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<ComboBox x:Name="PS2EmulatorComboBox" HorizontalAlignment="Left" Margin="676,244,0,0" VerticalAlignment="Top" Width="198" SelectedIndex="0">
<ComboBoxItem Content="Jak v2"/>
<ComboBoxItem Content="Rogue v1"/>
</ComboBox>
<TextBlock HorizontalAlignment="Left" Margin="676,220,0,0" TextWrapping="Wrap" Text="PS2 Emulator" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,304,0,0" TextWrapping="Wrap" Text="Emulator Configuration &amp; Fixes" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBox x:Name="SelectedPS2TXTConfigTextBox" HorizontalAlignment="Left" Margin="88,328,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="474"/>
<TextBlock HorizontalAlignment="Left" Margin="19,329,0,0" TextWrapping="Wrap" Text="TXT Config :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPS2LUAConfigTextBox" HorizontalAlignment="Left" Margin="88,351,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="474"/>
<TextBlock HorizontalAlignment="Left" Margin="19,352,0,0" TextWrapping="Wrap" Text="LUA Config :" VerticalAlignment="Top" Foreground="White"/>
<CheckBox x:Name="PS2FixGraphicsCheckBox" Content="Fix Graphics" HorizontalAlignment="Left" Margin="676,328,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="True"/>
<CheckBox x:Name="PS2DisableMTVUCheckBox" Content="Disable MTVU" HorizontalAlignment="Left" Margin="771,328,0,0" VerticalAlignment="Top" Foreground="White"/>
<CheckBox x:Name="PS2ImproveSpeedCheckBox" Content="Improve Speed" HorizontalAlignment="Left" Margin="676,348,0,0" VerticalAlignment="Top" Foreground="White"/>
<CheckBox x:Name="PS2DisableInstantVIF1TransferCheckBox" Content="Disable instant VIF1 transfer" HorizontalAlignment="Left" Margin="676,368,0,0" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="197,427,0,0" TextWrapping="Wrap" Text="Uprender :" VerticalAlignment="Top" Foreground="White"/>
<ComboBox x:Name="PS2UprenderComboBox" HorizontalAlignment="Left" Margin="197,448,0,0" VerticalAlignment="Top" Width="175" SelectedIndex="1">
<ComboBoxItem Content="None"/>
<ComboBoxItem Content="2x2"/>
</ComboBox>
<TextBlock HorizontalAlignment="Left" Margin="197,475,0,0" TextWrapping="Wrap" Text="Display Mode :" VerticalAlignment="Top" Foreground="White"/>
<ComboBox x:Name="PS2DisplayModeComboBox" HorizontalAlignment="Left" Margin="197,496,0,0" VerticalAlignment="Top" Width="175" SelectedIndex="0">
<ComboBoxItem Content="Normal"/>
<ComboBoxItem Content="Full"/>
<ComboBoxItem Content="4:3"/>
<ComboBoxItem Content="16:9"/>
</ComboBox>
<TextBlock HorizontalAlignment="Left" Margin="17,427,0,0" TextWrapping="Wrap" Text="Upscaling :" VerticalAlignment="Top" Foreground="White"/>
<ComboBox x:Name="PS2UpscalingComboBox" HorizontalAlignment="Left" Margin="17,448,0,0" VerticalAlignment="Top" Width="175" SelectedIndex="0">
<ComboBoxItem Content="None"/>
<ComboBoxItem Content="GPU"/>
<ComboBoxItem Content="Bilinear"/>
<ComboBoxItem Content="Edgesmooth"/>
<ComboBoxItem Content="Point"/>
</ComboBox>
<TextBlock HorizontalAlignment="Left" Margin="17,475,0,0" TextWrapping="Wrap" Text="Shader :" VerticalAlignment="Top" Foreground="White"/>
<ComboBox x:Name="PS2ShaderComboBox" HorizontalAlignment="Left" Margin="17,496,0,0" VerticalAlignment="Top" Width="175" SelectedIndex="0">
<ComboBoxItem Content="None"/>
<ComboBoxItem Content="Scanlines"/>
</ComboBox>
<CheckBox x:Name="PS2UseWidescreenPatchCheckBox" Content="Widescreen Patch" HorizontalAlignment="Left" Margin="383,499,0,0" VerticalAlignment="Top" Foreground="White" IsEnabled="False"/>
<TextBlock HorizontalAlignment="Left" Margin="18,403,0,0" TextWrapping="Wrap" Text="Emulator Graphics Settings" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<Button x:Name="BrowsePS2Disc1Button" Content="Browse" HorizontalAlignment="Left" Margin="567,179,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS2Disc2Button" Content="Browse" HorizontalAlignment="Left" Margin="567,202,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS2Disc3Button" Content="Browse" HorizontalAlignment="Left" Margin="567,225,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS2Disc4Button" Content="Browse" HorizontalAlignment="Left" Margin="567,248,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS2Disc5Button" Content="Browse" HorizontalAlignment="Left" Margin="567,271,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS2TXTConfigButton" Content="Browse" HorizontalAlignment="Left" Margin="567,327,0,0" VerticalAlignment="Top" Width="75"/>
<Button x:Name="BrowsePS2LUAConfigButton" Content="Browse" HorizontalAlignment="Left" Margin="567,350,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="676,304,0,0" TextWrapping="Wrap" Text="More Options" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="17,537,0,0" TextWrapping="Wrap" Text="Memory Card &amp; Other Settings" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="18,562,0,0" TextWrapping="Wrap" Text="Import PS2 8MB Memory Card :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPS2MemoryCardTextBox" HorizontalAlignment="Left" Margin="197,561,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="364"/>
<Button x:Name="BrowsePS2MCButton" Content="Browse" HorizontalAlignment="Left" Margin="566,560,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="675,562,0,0" TextWrapping="Wrap" Text="Multitap :" VerticalAlignment="Top" Foreground="White"/>
<ComboBox x:Name="PS2MultitapComboBox" HorizontalAlignment="Left" Margin="731,559,0,0" VerticalAlignment="Top" Width="106" SelectedIndex="0">
<ComboBoxItem Content="Disabled"/>
<ComboBoxItem Content="On Port 1"/>
<ComboBoxItem Content="On Port 2"/>
<ComboBoxItem Content="On Port 1 and 2"/>
</ComboBox>
<TextBlock HorizontalAlignment="Left" Margin="19,34,0,0" TextWrapping="Wrap" Text="PKG Details" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,58,0,0" TextWrapping="Wrap" Text="Icon :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedIconTextBox" HorizontalAlignment="Left" Margin="130,58,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<Button x:Name="BrowsePS2IconButton" Content="Browse" HorizontalAlignment="Left" Margin="567,57,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,81,0,0" TextWrapping="Wrap" Text="Background Image :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedStartupImageTextBox" HorizontalAlignment="Left" Margin="130,81,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<Button x:Name="BrowsePS2StartupImageButton" Content="Browse" HorizontalAlignment="Left" Margin="567,80,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,104,0,0" TextWrapping="Wrap" Text="Title :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PS2TitleTextBox" HorizontalAlignment="Left" Margin="130,104,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<TextBlock HorizontalAlignment="Left" Margin="19,127,0,0" TextWrapping="Wrap" Text="NP Title :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PS2NPTitleTextBox" HorizontalAlignment="Left" Margin="130,127,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="432"/>
<Button x:Name="BuildPS2fPKGButton" Content="Build fPKG" HorizontalAlignment="Left" Margin="676,57,0,0" VerticalAlignment="Top" Width="198" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="676,34,0,0" TextWrapping="Wrap" Text="PKG Build Options" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<CheckBox x:Name="PS2AddTXTConfigFromDatabaseCheckBox" Content="Add TXT Config from DB" HorizontalAlignment="Left" Margin="88,374,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="False"/>
<CheckBox x:Name="PS2AddLUAConfigFromDatabaseCheckBox" Content="Add LUA Config from DB" HorizontalAlignment="Left" Margin="243,374,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="False"/>
<CheckBox x:Name="PS2AddPS3ConfigFromDatabaseCheckBox" Content="Add PS3 Config from DB" HorizontalAlignment="Left" Margin="400,374,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="False"/>
<CheckBox x:Name="PS2UseCompressionCheckBox" Content="Use Compression" HorizontalAlignment="Left" Margin="676,200,0,0" VerticalAlignment="Top" Foreground="White" IsChecked="True"/>
</Grid>
</TabItem>
<TabItem Header="PSP Classics">
<Grid Background="#2D2D30">
<TextBlock HorizontalAlignment="Left" Margin="19,10,0,0" TextWrapping="Wrap" Text="Create a PSP fPKG" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,34,0,0" TextWrapping="Wrap" Text="PKG Details" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,58,0,0" TextWrapping="Wrap" Text="Icon :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPSPIconTextBox" HorizontalAlignment="Left" Margin="132,58,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="430"/>
<Button x:Name="BrowsePSPIconButton" Content="Browse" HorizontalAlignment="Left" Margin="567,57,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,81,0,0" TextWrapping="Wrap" Text="Background Image :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="SelectedPSPBGImageTextBox" HorizontalAlignment="Left" Margin="132,81,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="430"/>
<Button x:Name="BrowsePSPBGButton" Content="Browse" HorizontalAlignment="Left" Margin="567,80,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,104,0,0" TextWrapping="Wrap" Text="Title :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PSPTitleTextBox" HorizontalAlignment="Left" Margin="132,104,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="430"/>
<TextBlock HorizontalAlignment="Left" Margin="19,127,0,0" TextWrapping="Wrap" Text="NP Title :" VerticalAlignment="Top" Foreground="White"/>
<TextBox x:Name="PSPNPTitleTextBox" HorizontalAlignment="Left" Margin="132,127,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="430"/>
<Button x:Name="BuildPSPfPKGButton" Content="Build fPKG" HorizontalAlignment="Left" Margin="676,57,0,0" VerticalAlignment="Top" Width="198" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="676,34,0,0" TextWrapping="Wrap" Text="PKG Build Options" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBlock HorizontalAlignment="Left" Margin="19,186,0,0" TextWrapping="Wrap" Text="ISO File :" VerticalAlignment="Top" Foreground="White"/>
<TextBlock HorizontalAlignment="Left" Margin="19,162,0,0" TextWrapping="Wrap" Text="Disc Configuration" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBox x:Name="SelectedPSPDiscTextBox" HorizontalAlignment="Left" Margin="132,186,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="430"/>
<Button x:Name="BrowsePSPDiscButton" Content="Browse" HorizontalAlignment="Left" Margin="567,185,0,0" VerticalAlignment="Top" Width="75"/>
<TextBlock HorizontalAlignment="Left" Margin="19,220,0,0" TextWrapping="Wrap" Text="Emulator Configuration" VerticalAlignment="Top" Foreground="White" FontSize="14" FontWeight="Bold"/>
<TextBox x:Name="SelectedPSPConfigTextBox" HorizontalAlignment="Left" Margin="132,244,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="430"/>
<TextBlock HorizontalAlignment="Left" Margin="19,245,0,0" TextWrapping="Wrap" Text="Custom config-title :" VerticalAlignment="Top" Foreground="White"/>
<Button x:Name="BrowsePSPConfigButton" Content="Browse" HorizontalAlignment="Left" Margin="567,243,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</TabItem>
</TabControl>
</Grid>
</Window>
File diff suppressed because it is too large Load Diff
+17
View File
@@ -0,0 +1,17 @@
Imports System.Drawing
Public Class Utils
Public Shared Function ResizeAsImage(InputImage As Image, NewSizeX As Integer, NewSizeY As Integer) As Image
Return New Bitmap(InputImage, New Size(NewSizeX, NewSizeY))
End Function
Public Shared Function ConvertTo24bppPNG(ImageToConvert As Image) As Bitmap
Dim NewBitmap As New Bitmap(ImageToConvert.Width, ImageToConvert.Height, Imaging.PixelFormat.Format24bppRgb)
Using NewGraphics As Graphics = Graphics.FromImage(NewBitmap)
NewGraphics.DrawImage(ImageToConvert, New Rectangle(0, 0, ImageToConvert.Width, ImageToConvert.Height))
End Using
Return NewBitmap
End Function
End Class
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DiscUtils.Core" version="0.16.13" targetFramework="net481" />
<package id="DiscUtils.Iso9660" version="0.16.13" targetFramework="net481" />
<package id="DiscUtils.Streams" version="0.16.13" targetFramework="net481" />
<package id="DiscUtils.Udf" version="0.16.13" targetFramework="net481" />
</packages>
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB