├── .gitattributes
├── .gitignore
├── .gitmodules
├── LICENSE
├── PDTools.Compression
├── PDIZIP.cs
├── PDTools.Compression.csproj
├── PS2ZIP.cs
├── README.md
└── ZStdZIP.cs
├── PDTools.Crypto
├── ChaCha20.cs
├── ChaCha20Stream.cs
├── GT4ReplayCrypto.cs
├── MCipher.cs
├── MTRandom.cs
├── MiscCrypto.cs
├── PDIPFSDownloaderCrypto.cs
├── PDTools.Crypto.csproj
├── README.md
├── Salsa20.cs
├── Salsa20SymmetricAlgorithm.cs
├── SalsaUtils.cs
├── SharedCrypto.cs
└── SimulationInterface
│ ├── ISimulationInterfaceCryptor.cs
│ ├── SimulatorInterfaceCryptorGT6.cs
│ ├── SimulatorInterfaceCryptorGT7.cs
│ └── SimulatorInterfaceCryptorGTSport.cs
├── PDTools.Enums
├── EngineEnums.cs
├── GameParameterEnums.cs
├── PDTools.Enums.csproj
├── PS2
│ └── Enums.cs
└── PS3
│ └── Enums.cs
├── PDTools.Files.Fonts.NVecBuilder
├── PDTools.Files.Fonts.NVecBuilder.csproj
├── Program.cs
├── README.md
└── TrueTypeToNVecConverter.cs
├── PDTools.Files
├── Color4f.cs
├── Courses
│ ├── Autodrive
│ │ ├── AttackInfo.cs
│ │ ├── AutoDriveFile.cs
│ │ ├── AutoDriveInfo.cs
│ │ └── EnemyLine.cs
│ ├── GT4ReplayData.cs
│ ├── Minimap
│ │ ├── CourseMapFace.cs
│ │ ├── CourseMapFile.cs
│ │ └── CourseMapPoint.cs
│ ├── PS2
│ │ ├── CourseDataFileGT4.cs
│ │ ├── CourseSound
│ │ │ └── CourseSound.cs
│ │ ├── DCourseEffect
│ │ │ └── DCourseEffect.cs
│ │ ├── MiniMapSet.cs
│ │ ├── Runway
│ │ │ ├── CourseVCalculator.cs
│ │ │ ├── RunwayCheckpoint.cs
│ │ │ ├── RunwayCluster.cs
│ │ │ ├── RunwayData.cs
│ │ │ ├── RunwayRoadTri.cs
│ │ │ └── RunwayRoadVert.cs
│ │ └── VisionList
│ │ │ └── VisionList.cs
│ ├── PS3
│ │ └── CourseDataFile.cs
│ └── Runway
│ │ ├── RunwayBoundaryVert.cs
│ │ ├── RunwayCarLightSet.cs
│ │ ├── RunwayCarLightSetCollection.cs
│ │ ├── RunwayCheckpoint.cs
│ │ ├── RunwayFile.cs
│ │ ├── RunwayGadgetOld.cs
│ │ ├── RunwayLightDefinition.cs
│ │ ├── RunwayLightSet.cs
│ │ ├── RunwayLightVFX.cs
│ │ ├── RunwayRayCastData.cs
│ │ ├── RunwayRayCastNode.cs
│ │ ├── RunwayRoadTri.cs
│ │ ├── RunwayRoadVert.cs
│ │ ├── RunwayRoadVertMap.cs
│ │ ├── RunwaySector.cs
│ │ └── RunwayStartingGridPosition.cs
├── Fonts
│ ├── Glyph.cs
│ ├── GlyphLine.cs
│ ├── GlyphPoint.cs
│ ├── GlyphQuadraticBezierCurve.cs
│ ├── GlyphShapes.cs
│ ├── GlyphStartPoint.cs
│ ├── IGlyphShapeData.cs
│ └── NVectorFont.cs
├── Models
│ ├── PS2
│ │ ├── CarModel0
│ │ │ └── CarModel0.cs
│ │ ├── CarModel1
│ │ │ ├── CarInfo.cs
│ │ │ ├── CarModel1.cs
│ │ │ ├── CollisionParticle.cs
│ │ │ ├── ExhaustData.cs
│ │ │ ├── Light.cs
│ │ │ ├── OnboardCameras.cs
│ │ │ ├── TireFile.cs
│ │ │ ├── TireIndices.cs
│ │ │ └── WheelFile.cs
│ │ ├── GIFTag.cs
│ │ ├── GT2KCarData.cs
│ │ ├── ModelSet
│ │ │ ├── ModelCommandContext.cs
│ │ │ ├── ModelPS2Base.cs
│ │ │ ├── ModelSet0.cs
│ │ │ ├── ModelSet0Model.cs
│ │ │ ├── ModelSet1.cs
│ │ │ ├── ModelSet1Bounding.cs
│ │ │ ├── ModelSet1Model.cs
│ │ │ ├── ModelSet1Serializer.cs
│ │ │ ├── ModelSet2.cs
│ │ │ ├── ModelSet2Model.cs
│ │ │ ├── ModelSet2Serializer.cs
│ │ │ └── ModelSetPS2Base.cs
│ │ ├── PGLUmaterial.cs
│ │ ├── PGLUshape.cs
│ │ ├── RelocatorBase.cs
│ │ ├── RenderCommandContext.cs
│ │ ├── RenderCommands
│ │ │ ├── Cmd_BBoxRender.cs
│ │ │ ├── Cmd_CallModelCallback.cs
│ │ │ ├── Cmd_CallVM.cs
│ │ │ ├── Cmd_GT3_2_1ui.cs
│ │ │ ├── Cmd_GT3_2_4f.cs
│ │ │ ├── Cmd_GT3_3_1ui.cs
│ │ │ ├── Cmd_GT3_3_4f.cs
│ │ │ ├── Cmd_JumpByte.cs
│ │ │ ├── Cmd_JumpShort.cs
│ │ │ ├── Cmd_LODSelect.cs
│ │ │ ├── Cmd_RenderModel_Byte.cs
│ │ │ ├── Cmd_RenderModel_UShort.cs
│ │ │ ├── Cmd_Unk53.cs
│ │ │ ├── Cmd_VMCallbackByte.cs
│ │ │ ├── Cmd_VMCallbackUShort.cs
│ │ │ ├── Cmd_VM_Branch.cs
│ │ │ ├── Cmd_VM_pglRotate.cs
│ │ │ ├── Cmd_VM_pglVariableColorOffset.cs
│ │ │ ├── Cmd_VM_pglVariableColorScale.cs
│ │ │ ├── Cmd_VM_pgluShapeTweenRatio.cs
│ │ │ ├── Cmd_pglAlphaFail.cs
│ │ │ ├── Cmd_pglAlphaFunc.cs
│ │ │ ├── Cmd_pglBlendFunc.cs
│ │ │ ├── Cmd_pglColorMask1ui.cs
│ │ │ ├── Cmd_pglCopyFogColor.cs
│ │ │ ├── Cmd_pglCullFace_1.cs
│ │ │ ├── Cmd_pglCullFace_2.cs
│ │ │ ├── Cmd_pglDepthBias.cs
│ │ │ ├── Cmd_pglDepthFunc.cs
│ │ │ ├── Cmd_pglDestinationAlphaFunc.cs
│ │ │ ├── Cmd_pglDisableAlphaTest.cs
│ │ │ ├── Cmd_pglDisableCullFace.cs
│ │ │ ├── Cmd_pglDisableDepthMask.cs
│ │ │ ├── Cmd_pglDisableDepthTest.cs
│ │ │ ├── Cmd_pglDisableDestinationAlphaTest.cs
│ │ │ ├── Cmd_pglEnable17.cs
│ │ │ ├── Cmd_pglEnable19_14.cs
│ │ │ ├── Cmd_pglEnableAlphaTest.cs
│ │ │ ├── Cmd_pglEnableCullFace.cs
│ │ │ ├── Cmd_pglEnableDepthMask.cs
│ │ │ ├── Cmd_pglEnableDepthTest.cs
│ │ │ ├── Cmd_pglEnableDestinationAlphaTest.cs
│ │ │ ├── Cmd_pglLoadMatrix.cs
│ │ │ ├── Cmd_pglMatrixMode.cs
│ │ │ ├── Cmd_pglMultMatrix.cs
│ │ │ ├── Cmd_pglPopMatrix.cs
│ │ │ ├── Cmd_pglPushMatrix.cs
│ │ │ ├── Cmd_pglRotate.cs
│ │ │ ├── Cmd_pglRotateX.cs
│ │ │ ├── Cmd_pglRotateY.cs
│ │ │ ├── Cmd_pglRotateZ.cs
│ │ │ ├── Cmd_pglScale.cs
│ │ │ ├── Cmd_pglSetFogColor.cs
│ │ │ ├── Cmd_pglStoreFogColor.cs
│ │ │ ├── Cmd_pglTexGenf_Default.cs
│ │ │ ├── Cmd_pglTexGenf_WithCurrentFacingParameters.cs
│ │ │ ├── Cmd_pglTranslate.cs
│ │ │ ├── Cmd_pglVariableColorOffset.cs
│ │ │ ├── Cmd_pglVariableColorScale.cs
│ │ │ ├── Cmd_pgluCallShape_Byte.cs
│ │ │ ├── Cmd_pgluCallShape_UShort.cs
│ │ │ ├── Cmd_pgluSetExternalMatIndex.cs
│ │ │ ├── Cmd_pgluSetExternalTexIndex.cs
│ │ │ ├── Cmd_pgluSetTexTable_Byte.cs
│ │ │ ├── Cmd_pgluSetTexTable_UShort.cs
│ │ │ ├── Cmd_pgluTexTableFromExternalTexSetByte.cs
│ │ │ ├── Cmd_pgluTexTableFromExternalTexSetUShort.cs
│ │ │ ├── ModelSetupCommand.cs
│ │ │ └── ModelSetupOpcode.cs
│ │ ├── VIFCommand.cs
│ │ ├── VIFDescriptor.cs
│ │ └── VIFPacket.cs
│ ├── PS3
│ │ ├── ModelSet3
│ │ │ ├── FVF
│ │ │ │ ├── MDL3FVFDefinitionCollection.cs
│ │ │ │ ├── MDL3FVFElementDefinition.cs
│ │ │ │ ├── MDL3FVFFieldArrayDefinition.cs
│ │ │ │ └── MDL3FlexibleVertexDefinition.cs
│ │ │ ├── MDL3Bone.cs
│ │ │ ├── MDL3Model.cs
│ │ │ ├── MDL3ModelKey.cs
│ │ │ ├── MDL3ModelKeyComparer.cs
│ │ │ ├── MDL3ModelVMContext.cs
│ │ │ ├── MDL3ModelVMUnk.cs
│ │ │ ├── MDL3ModelVMUnk2.cs
│ │ │ ├── MDL3ModelVMUnk2_0x04.cs
│ │ │ ├── MDL3ModelVMUnk2_0x04_Data.cs
│ │ │ ├── MDL3ModelVMUnk2_0x08.cs
│ │ │ ├── MDL3TextureKey.cs
│ │ │ ├── MDL3TextureKeyComparer.cs
│ │ │ ├── Materials
│ │ │ │ ├── CellGcmParams.cs
│ │ │ │ ├── MDL3Material.cs
│ │ │ │ ├── MDL3MaterialData.cs
│ │ │ │ ├── MDL3MaterialData_0x14.cs
│ │ │ │ ├── MDL3MaterialData_0x18.cs
│ │ │ │ ├── MDL3MaterialData_0x1C.cs
│ │ │ │ ├── MDL3MaterialShaderReferences.cs
│ │ │ │ └── MDL3Materials.cs
│ │ │ ├── Meshes
│ │ │ │ ├── MDL3Mesh.cs
│ │ │ │ ├── MDL3MeshKey.cs
│ │ │ │ ├── MDL3MeshKeyComparer.cs
│ │ │ │ └── MDL3MeshPackedMeshRef.cs
│ │ │ ├── ModelSet3.cs
│ │ │ ├── ModelSet3Serializer.cs
│ │ │ ├── PackedMesh
│ │ │ │ ├── PackedMeshElementBitLayout.cs
│ │ │ │ ├── PackedMeshElementBitLayoutArray.cs
│ │ │ │ ├── PackedMeshEntry.cs
│ │ │ │ ├── PackedMeshEntryData.cs
│ │ │ │ ├── PackedMeshFlexVertexDefinition.cs
│ │ │ │ ├── PackedMeshFlexVertexElementDefinition.cs
│ │ │ │ ├── PackedMeshHeader.cs
│ │ │ │ └── PackedMeshKey.cs
│ │ │ ├── ShapeStream
│ │ │ │ ├── MDL3ShapeStreamingChunkInfo.cs
│ │ │ │ ├── MDL3ShapeStreamingInfoMeshEntry.cs
│ │ │ │ └── MDL3ShapeStreamingManager.cs
│ │ │ └── Wing
│ │ │ │ ├── MDL3WingData.cs
│ │ │ │ ├── MDL3WingKey.cs
│ │ │ │ └── MDL3WingKeyComparer.cs
│ │ └── PGLCommands
│ │ │ ├── Command_0_End.cs
│ │ │ ├── Command_10_JumpToShort.cs
│ │ │ ├── Command_11_PSP_Unk.cs
│ │ │ ├── Command_13_PSP_Unk.cs
│ │ │ ├── Command_14_Unk.cs
│ │ │ ├── Command_15_Unk.cs
│ │ │ ├── Command_16_PushMatrixMaybe.cs
│ │ │ ├── Command_17_PushMatrix2Maybe.cs
│ │ │ ├── Command_18_Unk.cs
│ │ │ ├── Command_19_Unk.cs
│ │ │ ├── Command_20_Unk.cs
│ │ │ ├── Command_21_Unk.cs
│ │ │ ├── Command_22_Unk.cs
│ │ │ ├── Command_23_Unk.cs
│ │ │ ├── Command_24_SetDepthTestEnabled.cs
│ │ │ ├── Command_25_SetDepthTestDisabled.cs
│ │ │ ├── Command_26_SetDepthFunc.cs
│ │ │ ├── Command_27_SetAlphaTestEnabled.cs
│ │ │ ├── Command_28_SetAlphaTestDisabled.cs
│ │ │ ├── Command_29_SetAlphaFunc.cs
│ │ │ ├── Command_2_Unk.cs
│ │ │ ├── Command_34_SetColorMask.cs
│ │ │ ├── Command_35_SetDepthMaskEnabled.cs
│ │ │ ├── Command_36_SetDepthMaskDisabled.cs
│ │ │ ├── Command_37_SetPolyOffsetScaleFactor.cs
│ │ │ ├── Command_38_SetCullFaceDisable.cs
│ │ │ ├── Command_39_SetCullFaceDisable.cs
│ │ │ ├── Command_3_LoadMeshByteIndex.cs
│ │ │ ├── Command_40_SetCullFaceBack.cs
│ │ │ ├── Command_41_SetCullFaceFront.cs
│ │ │ ├── Command_42_SetCullFaceSwitch.cs
│ │ │ ├── Command_43_SetVMUnk.cs
│ │ │ ├── Command_44_CallVM_Ptr2.cs
│ │ │ ├── Command_45_Unk.cs
│ │ │ ├── Command_46_Unk.cs
│ │ │ ├── Command_47_Unk.cs
│ │ │ ├── Command_49_Unk.cs
│ │ │ ├── Command_4_LoadMeshUShortIndex.cs
│ │ │ ├── Command_50_Unk.cs
│ │ │ ├── Command_51_Unk.cs
│ │ │ ├── Command_52_Unk.cs
│ │ │ ├── Command_53_Unk.cs
│ │ │ ├── Command_54_Unk.cs
│ │ │ ├── Command_55_PSP_Unk.cs
│ │ │ ├── Command_56_PSP_Unk.cs
│ │ │ ├── Command_57_PSP_Unk.cs
│ │ │ ├── Command_58_PSP_Unk.cs
│ │ │ ├── Command_59_LoadMesh2_Byte.cs
│ │ │ ├── Command_5_Switch.cs
│ │ │ ├── Command_60_LoadMesh2_UShort.cs
│ │ │ ├── Command_61_Semaphore_InvalidateL2.cs
│ │ │ ├── Command_62_Unk.cs
│ │ │ ├── Command_65_Unk.cs
│ │ │ ├── Command_66_Unk.cs
│ │ │ ├── Command_67_Unk.cs
│ │ │ ├── Command_68_Unk.cs
│ │ │ ├── Command_69_Unk.cs
│ │ │ ├── Command_6_Unk.cs
│ │ │ ├── Command_70_Unk.cs
│ │ │ ├── Command_71_Unk.cs
│ │ │ ├── Command_72_Unk.cs
│ │ │ ├── Command_74_LoadMultipleMeshes.cs
│ │ │ ├── Command_75_LoadMultipleMeshes2.cs
│ │ │ ├── Command_77_Unk.cs
│ │ │ ├── Command_7_Unk.cs
│ │ │ ├── Command_8_Unk.cs
│ │ │ ├── Command_9_JumpToByte.cs
│ │ │ └── ModelSetupCommand.cs
│ ├── Shaders
│ │ ├── ShaderDefinition.cs
│ │ ├── ShaderProgramEntry_0x20_0x14.cs
│ │ ├── ShaderProgramEntry_0x20_0x18.cs
│ │ ├── ShaderProgramEntry_0x2C_0x10.cs
│ │ ├── ShaderProgramEntry_0x2C_0x14.cs
│ │ ├── ShaderProgramEntry_0x2C_0x18.cs
│ │ ├── ShaderProgramEntry_0x2C_0x38.cs
│ │ ├── ShaderProgram_0x20.cs
│ │ ├── ShaderProgram_0x2C.cs
│ │ ├── ShaderProgram_0x40.cs
│ │ ├── Shader_0x3C.cs
│ │ └── ShadersHeader.cs
│ ├── ShapeStream
│ │ ├── ShapeStream.cs
│ │ ├── ShapeStreamChunk.cs
│ │ └── ShapeStreamMesh.cs
│ └── VM
│ │ ├── Instructions
│ │ ├── VM0x10.cs
│ │ ├── VM0xC2.cs
│ │ ├── VMAdd.cs
│ │ ├── VMAddF.cs
│ │ ├── VMAtan2F.cs
│ │ ├── VMBinaryAnd.cs
│ │ ├── VMBinaryLeftShift.cs
│ │ ├── VMBinaryOr.cs
│ │ ├── VMBinaryRightShift.cs
│ │ ├── VMBinaryXor.cs
│ │ ├── VMCosF.cs
│ │ ├── VMDivide.cs
│ │ ├── VMDivideF.cs
│ │ ├── VMEquals.cs
│ │ ├── VMEqualsF.cs
│ │ ├── VMFloatToInt.cs
│ │ ├── VMGreaterThan.cs
│ │ ├── VMGreaterThanF.cs
│ │ ├── VMGreatherEqualTo.cs
│ │ ├── VMGreatherEqualToF.cs
│ │ ├── VMInstruction.cs
│ │ ├── VMIntConst.cs
│ │ ├── VMIntToFloat.cs
│ │ ├── VMJump.cs
│ │ ├── VMJumpIfFalse.cs
│ │ ├── VMLesserEqualTo.cs
│ │ ├── VMLesserEqualToF.cs
│ │ ├── VMLesserThan.cs
│ │ ├── VMLesserThanF.cs
│ │ ├── VMMaxF.cs
│ │ ├── VMMinF.cs
│ │ ├── VMModulo.cs
│ │ ├── VMModuloF.cs
│ │ ├── VMMultiply.cs
│ │ ├── VMMultiplyF.cs
│ │ ├── VMNotEquals.cs
│ │ ├── VMNotEqualsF.cs
│ │ ├── VMPopAssignToLocal.cs
│ │ ├── VMPowF.cs
│ │ ├── VMRandF.cs
│ │ ├── VMReturn.cs
│ │ ├── VMSignF.cs
│ │ ├── VMSinF.cs
│ │ ├── VMSqrtF.cs
│ │ ├── VMStackSeek.cs
│ │ ├── VMSubtract.cs
│ │ ├── VMSubtractF.cs
│ │ ├── VMTanF.cs
│ │ ├── VMUnaryBitwiseNot.cs
│ │ ├── VMUnaryMinus.cs
│ │ ├── VMUnaryMinusF.cs
│ │ ├── VMVariableEval.cs
│ │ └── VMVariablePush.cs
│ │ ├── RegisterInfo.cs
│ │ ├── RegisterValue.cs
│ │ ├── VMBytecode.cs
│ │ ├── VMContext.cs
│ │ ├── VMHostMethodEntry.cs
│ │ └── VMInstructionOpcodes.cs
├── PDTools.Files.csproj
├── README.md
├── Sound
│ ├── EsHeader.cs
│ ├── InsHeader.cs
│ ├── Jam
│ │ ├── JamHeader.cs
│ │ └── JamProgChunk.cs
│ ├── PS2
│ │ └── MusicInf
│ │ │ ├── MusicInf.cs
│ │ │ ├── Playlist.cs
│ │ │ └── Track.cs
│ ├── Se
│ │ ├── Meta
│ │ │ └── ISeMeta.cs
│ │ └── SeSeq.cs
│ └── Ssqt
│ │ ├── Meta
│ │ ├── ISqMeta.cs
│ │ └── SqSetTempoEvent.cs
│ │ ├── Ssqt.cs
│ │ └── Sssq.cs
├── Textures
│ ├── DDSEnums.cs
│ ├── DdsHeader.cs
│ ├── PDITexture.cs
│ ├── PGLUTextureInfo.cs
│ ├── PS2
│ │ ├── ClutPatch.cs
│ │ ├── GSMemory.cs
│ │ ├── GSPixelFormats
│ │ │ ├── GSPixelFormat.cs
│ │ │ ├── PSMT4.cs
│ │ │ ├── PSMT8.cs
│ │ │ └── PSM_CT32.cs
│ │ ├── GSStructs.cs
│ │ ├── PGLUTexture.cs
│ │ ├── Tex1Utils.cs
│ │ ├── TextureConfig.cs
│ │ ├── TextureInfo.cs
│ │ ├── TextureSet1.cs
│ │ ├── TextureSetBuilder.cs
│ │ ├── TextureSetPS2Base.cs
│ │ └── UTextureSet.cs
│ ├── PS3
│ │ ├── CellTexture.cs
│ │ ├── CellTextureEnums.cs
│ │ ├── PGLUCellTextureInfo.cs
│ │ └── Swizzler.cs
│ ├── PS4
│ │ ├── OrbisTextureBuffer.cs
│ │ ├── OrbisTextureEnums.cs
│ │ ├── PGLUOrbisTextureInfo.cs
│ │ └── Swizzler.cs
│ ├── PSP
│ │ ├── GEClutBufferInfo.cs
│ │ ├── GECommandList.cs
│ │ ├── GETextureBuffer.cs
│ │ ├── GETextureEnums.cs
│ │ ├── GETextureStructs.cs
│ │ ├── GEUtils.cs
│ │ └── PGLUGETextureInfo.cs
│ ├── Texture.cs
│ ├── TextureSet3.cs
│ └── TextureSet3ClutInfoBase.cs
├── Tri.cs
└── Vec3R.cs
├── PDTools.GT4ElfBuilderTool
├── Elf.cs
├── ElfBuilder.cs
├── ElfSegment.cs
├── GTImageLoader.cs
├── PDTools.GT4ElfBuilderTool.csproj
├── Program.cs
├── Properties
│ └── launchSettings.json
├── README.md
└── RSAContext.cs
├── PDTools.GTPatcher
├── BreakLoggers
│ ├── AdhocExceptionFixer.cs
│ ├── AdhocExceptionLogger.cs
│ ├── EvalExpressionCompilationTokenTypeLogger.cs
│ ├── EvalExpressionStringLogger.cs
│ ├── FileDeviceKernelAccessLogger.cs
│ ├── FileDeviceMPHAccessLogger.cs
│ ├── IBreakLogger.cs
│ └── TinyWebAdhocModuleCacheDisabler.cs
├── Breakpoint.cs
├── CompilerEnums.cs
├── GT7AppOpt.txt
├── GTPatcher.cs
├── GTSAppOpt.txt
├── MemoryPatches
│ ├── CommandLineInjector.cs
│ ├── IMemoryPatch.cs
│ ├── VersionBranchPatcher.cs
│ ├── VersionBuildPatcher.cs
│ └── VersionEnvironmentPatcher.cs
├── PDTools.GTPatcher.csproj
├── Program.cs
├── Properties
│ └── launchSettings.json
├── README.md
└── libdebug.dll
├── PDTools.GrimPFS
├── GrimPatch.cs
├── GrimPatchFile.cs
└── PDTools.GrimPFS.csproj
├── PDTools.GrimSonyDLSBuilder
├── PDTools.GrimSonyDLSBuilder.csproj
├── PaceFileInfo.cs
├── PaceFileInfoParams.cs
├── PaceFileInfoPiece.cs
└── Program.cs
├── PDTools.Hashing
├── CRC32.cs
├── CRC32C.cs
├── PDTools.Hashing.csproj
├── README.md
└── SHA512.cs
├── PDTools.LiveTimingApi
├── Entities
│ ├── LiveTimingBestLapEntry.cs
│ ├── LiveTimingCondition.cs
│ ├── LiveTimingConsumeState.cs
│ ├── LiveTimingEntry.cs
│ ├── LiveTimingRaceInfo.cs
│ └── LiveTimingRaceState.cs
├── LiveTimingClient.cs
├── PDTools.LiveTimingApi.csproj
└── README.md
├── PDTools.LiveTimingApiTestTool
├── PDTools.LiveTimingApiTestTool.csproj
└── Program.cs
├── PDTools.RText
├── PDTools.RText.csproj
├── README.md
├── RT03.cs
├── RT03Page.cs
├── RT04.cs
├── RT04Page.cs
├── RT05.cs
├── RT05Page.cs
├── RTextBase.cs
├── RTextConstants.cs
├── RTextPageBase.cs
├── RTextPairUnit.cs
├── RTextParser.cs
└── _50TR.cs
├── PDTools.SaveFile
├── GT4
│ ├── Context.cs
│ ├── GT4GameData.cs
│ ├── GT4Save.cs
│ ├── GarageFileHeader.cs
│ ├── ISerializableGT4Entity.cs
│ ├── Option
│ │ ├── BGMPlayData.cs
│ │ ├── BGMPlaylist.cs
│ │ ├── ColorCorrection.cs
│ │ ├── GameZone.cs
│ │ ├── OptionEvent.cs
│ │ ├── OptionGT4.cs
│ │ ├── OptionLanBattle.cs
│ │ ├── OptionLogger.cs
│ │ ├── OptionNetConfig.cs
│ │ ├── OptionRaceControllerPS2.cs
│ │ ├── OptionRaceInputPortPS2.cs
│ │ └── PhysicalMonitorSize.cs
│ └── UserProfile
│ │ ├── Available.cs
│ │ ├── Calendar.cs
│ │ ├── ChampionshipContext.cs
│ │ ├── CourseEntryUnit.cs
│ │ ├── CourseRecordBase.cs
│ │ ├── CourseRecordUnit.cs
│ │ ├── DayEvents
│ │ ├── BuyWheelEvent.cs
│ │ ├── BuyWingEvent.cs
│ │ ├── DayEvent.cs
│ │ ├── GetCarEvent.cs
│ │ ├── NoEvent.cs
│ │ ├── RunCourseEvent.cs
│ │ ├── RunLicenseEvent.cs
│ │ ├── RunMissionEvent.cs
│ │ ├── RunRaceEvent.cs
│ │ └── SellCarEvent.cs
│ │ ├── Favorite.cs
│ │ ├── GarageCar.cs
│ │ ├── GarageScratch.cs
│ │ ├── LicenseEntryUnit.cs
│ │ ├── LicenseRecord.cs
│ │ ├── LicenseRecordUnit.cs
│ │ ├── Present.cs
│ │ ├── RaceRecord.cs
│ │ ├── RaceRecordUnit.cs
│ │ ├── UsedCar.cs
│ │ └── UserProfileGT4.cs
├── PDTools.SaveFile.csproj
└── README.md
├── PDTools.ScapesDataHelper
├── ExifInfo.cs
├── JxlBoxInfoMap.cs
├── PDTools.ScapesDataHelper.csproj
├── README.md
└── ScapesExifDataExtractor.cs
├── PDTools.SimulatorInterface
├── PDTools.SimulatorInterface.csproj
├── README.md
├── SimulatorInterfaceClient.cs
├── SimulatorInterfaceGameType.cs
└── SimulatorPacket.cs
├── PDTools.SimulatorInterfaceTestTool
├── PDTools.SimulatorInterfaceTestTool.csproj
├── Program.cs
└── README.md
├── PDTools.SpecDB
├── Core
│ ├── CompressedTableWriter.cs
│ ├── DatabaseTableHuffmanTree.cs
│ ├── Formats
│ │ ├── DBT_DatabaseTable.cs
│ │ ├── IDI_LabelInformation.cs
│ │ ├── RaceSpec.cs
│ │ ├── SDB_StringDatabase.cs
│ │ └── TBI_PartsInfo.cs
│ ├── Mapping
│ │ ├── TableMetadata.cs
│ │ ├── Tables
│ │ │ ├── ASCC.cs
│ │ │ ├── AirCleaner.cs
│ │ │ ├── AllowEntry.cs
│ │ │ ├── ArcadeInfo.cs
│ │ │ ├── Brake.cs
│ │ │ ├── BrakeController.cs
│ │ │ ├── CarCustomInfo.cs
│ │ │ ├── CarName.cs
│ │ │ ├── CarVariation.cs
│ │ │ ├── Catalyst.cs
│ │ │ ├── Chassis.cs
│ │ │ ├── Clutch.cs
│ │ │ ├── Computer.cs
│ │ │ ├── Course.cs
│ │ │ ├── CourseName.cs
│ │ │ ├── DefaultParam.cs
│ │ │ ├── DefaultParts.cs
│ │ │ ├── Displacement.cs
│ │ │ ├── Drivetrain.cs
│ │ │ ├── EnemyCars.cs
│ │ │ ├── Engine.cs
│ │ │ ├── EngineBalance.cs
│ │ │ ├── ExhaustManifold.cs
│ │ │ ├── Flywheel.cs
│ │ │ ├── FrontTire.cs
│ │ │ ├── Gear.cs
│ │ │ ├── GenericCar.cs
│ │ │ ├── GenericCarInfo.cs
│ │ │ ├── GenericItems.cs
│ │ │ ├── IndepThrottle.cs
│ │ │ ├── IntakeManifold.cs
│ │ │ ├── Intercooler.cs
│ │ │ ├── Lightweight.cs
│ │ │ ├── Lsd.cs
│ │ │ ├── Maker.cs
│ │ │ ├── ModelInfo.cs
│ │ │ ├── Muffler.cs
│ │ │ ├── NOS.cs
│ │ │ ├── Natune.cs
│ │ │ ├── PaintColorInfo.cs
│ │ │ ├── PortPolish.cs
│ │ │ ├── PropellerShaft.cs
│ │ │ ├── Race.cs
│ │ │ ├── RacingModify.cs
│ │ │ ├── RearTire.cs
│ │ │ ├── RiderEquipment.cs
│ │ │ ├── RiderSet.cs
│ │ │ ├── RiderSetAssign.cs
│ │ │ ├── Steer.cs
│ │ │ ├── Supercharger.cs
│ │ │ ├── Suspension.cs
│ │ │ ├── TCSC.cs
│ │ │ ├── TireCompound.cs
│ │ │ ├── TireForceVol.cs
│ │ │ ├── TireSize.cs
│ │ │ ├── TunedCars.cs
│ │ │ ├── Tuner.cs
│ │ │ ├── TunerList.cs
│ │ │ ├── TurbineKit.cs
│ │ │ ├── Variation.cs
│ │ │ ├── Wheel.cs
│ │ │ └── Wing.cs
│ │ └── Types
│ │ │ ├── DBBool.cs
│ │ │ ├── DBByte.cs
│ │ │ ├── DBFloat.cs
│ │ │ ├── DBInt.cs
│ │ │ ├── DBKey.cs
│ │ │ ├── DBLong.cs
│ │ │ ├── DBSByte.cs
│ │ │ ├── DBShort.cs
│ │ │ ├── DBString.cs
│ │ │ ├── DBUInt.cs
│ │ │ ├── DBUShort.cs
│ │ │ └── IDBType.cs
│ ├── PartsInfoBuilder.cs
│ ├── RowData.cs
│ ├── RowKey.cs
│ ├── RowLabelComparer.cs
│ ├── SpecDB.cs
│ ├── SpecDBDebugPrinter.cs
│ └── Table.cs
├── ISpecDB.cs
├── PDTools.SpecDB.csproj
├── README.md
├── SpecDBOldWrapper.cs
├── SpecDBQueryResult.cs
└── SpecDBSQLiteWrapper.cs
├── PDTools.Structures
├── DbCode.cs
├── MCarThin.cs
├── MGameItem.cs
├── MGameParameter
│ ├── AchieveCondition.cs
│ ├── ArcadeStyleSetting.cs
│ ├── BoostParams.cs
│ ├── BoostTable.cs
│ ├── Constraint.cs
│ ├── CourseGeneratorParam.cs
│ ├── CourseGeneratorParamSection.cs
│ ├── DriftCondition.cs
│ ├── DriftSection.cs
│ ├── EditorInfo.cs
│ ├── Entry.cs
│ ├── EntryBase.cs
│ ├── EntryGenerate.cs
│ ├── EntrySet.cs
│ ├── EvalCondition.cs
│ ├── Event.cs
│ ├── EventListFolder.cs
│ ├── FailureCondition.cs
│ ├── Gadget.cs
│ ├── GameParameter.cs
│ ├── GameParameterEventList.cs
│ ├── Information.cs
│ ├── LicenseCondition.cs
│ ├── LocalizeText.cs
│ ├── OnlineRoomParameter.cs
│ ├── PenaltyParameter.cs
│ ├── PlayStyle.cs
│ ├── RaceParameter.cs
│ ├── Ranking.cs
│ ├── Regulation.cs
│ ├── Replay.cs
│ ├── Reward.cs
│ ├── StageData.cs
│ ├── StageResetData.cs
│ ├── Track.cs
│ └── WeatherData.cs
├── MPDINetworkUserId.cs
├── MReplayInfo.cs
├── PDIDATETIME.cs
├── PDIDATETIME32.cs
├── PDIDATETIME_Julian.cs
├── PDIDATE_Julian.cs
├── PDTools.Structures.csproj
├── PS2
│ ├── AutomobileAccumulatedStatus.cs
│ ├── CarEquipments.cs
│ └── CarGarage.cs
├── PS3
│ ├── MCarDriverParameter.cs
│ ├── MCarParameter.cs
│ ├── MCarThin.cs
│ ├── MPDINetworkUserId.cs
│ ├── MReplayInfo.cs
│ ├── MatchingEventId.cs
│ └── RankingStats.cs
├── README.md
└── RankingStats.cs
├── PDTools.Utils
├── AlphaNumStringComparer.cs
├── BitStream.cs
├── ByteBufferComparer.cs
├── Extensions.cs
├── MathUtils.cs
├── MiscUtils.cs
├── OptimizedStringTable.cs
├── PDIPFSPathScrambler.cs
├── PDTools.Utils.csproj
├── README.md
├── RegionUtil.cs
└── XmlUtils.cs
├── PDTools.sln
├── README.md
└── STStruct
├── NodeBase.cs
├── Nodes
├── MBlob.cs
├── STArray.cs
├── STByte.cs
├── STFloat.cs
├── STInt.cs
├── STLong.cs
├── STMap.cs
├── STObject.cs
├── STObjectNull.cs
├── STSByte.cs
├── STShort.cs
├── STString.cs
├── STUInt.cs
├── STULong.cs
└── STUShort.cs
├── PDTools.STStruct.csproj
├── STStruct.cs
└── Utils.cs
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "Typography"]
2 | path = Typography
3 | url = https://github.com/LayoutFarm/Typography.git
4 |
--------------------------------------------------------------------------------
/PDTools.Compression/PDTools.Compression.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 |
6 |
7 |
8 | true
9 |
10 |
11 |
12 | true
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/PDTools.Compression/README.md:
--------------------------------------------------------------------------------
1 | # PDTools.Compression
2 | Handles all compression needs.
3 | * PS2ZIP - GT3 to GT7 - Inflate, starts with `0xC5EEF7FF` magic. Used very frequently.
4 | * PDIZIP - GTS - Inflate fragments
5 | * ZSTD - GT7, used by main volume
6 |
--------------------------------------------------------------------------------
/PDTools.Crypto/PDTools.Crypto.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/PDTools.Crypto/README.md:
--------------------------------------------------------------------------------
1 | ## PDTools.Crypto
2 | Library for dealing with crypto. Contains:
3 | * `GT4ReplayCrypto` - Used for decrypting GT4 Replays, but unfinished due to weird PS2 floats involved.
4 | * `MCipher` class - Generic encryption class, also used for saves (GT5/6/7)
5 | * `MTRandom` class - Used for pseudo-randomness generation
6 | * `Salsa20` class - Used in movie, database encryption in GT5/6 & more
7 | * `Chacha20` class - Used in GT7 volume & more
8 | * `PDIPFSDownloaderCrypto` class - Used for GT5/6 online patch update encryption
9 | * `SimulationInterface` folder - Sim Interface encryption handling for GT6, GTS, GT7
10 |
--------------------------------------------------------------------------------
/PDTools.Crypto/SimulationInterface/ISimulationInterfaceCryptor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Crypto.SimulationInterface;
8 |
9 | public interface ISimulationInterfaceCryptor
10 | {
11 | void Decrypt(Span bytes);
12 | }
13 |
--------------------------------------------------------------------------------
/PDTools.Enums/PDTools.Enums.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | net9.0
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/PDTools.Files.Fonts.NVecBuilder/PDTools.Files.Fonts.NVecBuilder.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Exe
5 | net9.0
6 | nvec_builder
7 | True
8 | nvec_builder
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/PDTools.Files.Fonts.NVecBuilder/README.md:
--------------------------------------------------------------------------------
1 | ## PDTools.Files.Fonts.NVecBuilder
2 | TTF to NVEC Font file converter for GT5/GT6
3 |
4 | > [!NOTE]
5 | > Not fully finished, some spacing between characters is off, due to my lack of TTF knowledge and how it maps to VEC.
6 | >
7 | > 010 Editor template is available [here](https://github.com/Nenkai/GT-File-Specifications-Documentation/blob/master/Formats/PS3/Fonts/NVec_VectorFont.bt).
8 | >
9 | > [FontDrop](https://fontdrop.info/?darkmode=true) is an excellent website for previewing TTF data.
10 |
--------------------------------------------------------------------------------
/PDTools.Files/Color4f.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files;
8 |
9 | public struct Color4f
10 | {
11 | public float R { get; set; }
12 | public float G { get; set; }
13 | public float B { get; set; }
14 | public float A { get; set; }
15 |
16 | public Color4f(float r, float g, float b, float a)
17 | {
18 | R = r;
19 | G = g;
20 | B = b;
21 | A = a;
22 | }
23 |
24 | public static readonly Color4f Zero = new(0f, 0f, 0f, 0f);
25 | public static readonly Color4f One = new(1f, 1f, 1f, 1f);
26 |
27 | public override readonly int GetHashCode()
28 | {
29 | return HashCode.Combine(R, G, B, A);
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Courses/Minimap/CourseMapPoint.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Courses.Minimap;
8 |
9 | public class CourseMapPoint
10 | {
11 | public short X { get; set; }
12 | public short Y { get; set; }
13 | public short Z { get; set; }
14 | public short Unk { get; set; }
15 | }
16 |
--------------------------------------------------------------------------------
/PDTools.Files/Courses/PS2/Runway/RunwayRoadVert.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Numerics;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Courses.PS2.Runway;
11 |
12 | public class RunwayRoadVert
13 | {
14 | public Vector3 Vertex { get; set; }
15 | public short Unk { get; set; }
16 | public byte Unk2 { get; set; }
17 | public byte Unk3 { get; set; }
18 | public static RunwayRoadVert FromStream(BinaryStream bs)
19 | {
20 | RunwayRoadVert vert = new RunwayRoadVert();
21 | vert.Vertex = new Vector3(bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle());
22 | vert.Unk = bs.ReadInt16();
23 | vert.Unk2 = bs.Read1Byte();
24 | vert.Unk3 = bs.Read1Byte();
25 |
26 | return vert;
27 | }
28 |
29 | public static int GetSize()
30 | {
31 | return 0x10;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Courses/Runway/RunwayRoadVert.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | namespace PDTools.Files.Courses.Runway
9 | {
10 | public class RunwayRoadVert
11 | {
12 | public Vector3 Vertex { get; set; }
13 | public ushort Unk1;
14 | public ushort Unk2;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/PDTools.Files/Courses/Runway/RunwayStartingGridPosition.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Courses.Runway;
10 |
11 | public class RunwayStartingGridPosition
12 | {
13 | public Vec3R Position { get; set; }
14 |
15 | public static RunwayStartingGridPosition FromStream(BinaryStream bs, ushort rwyVersionMajor, ushort rwyVersionMinor)
16 | {
17 | var pos = new RunwayStartingGridPosition();
18 | pos.Position = Vec3R.FromStream(bs);
19 | return pos;
20 | }
21 |
22 | public void ToStream(BinaryStream bs, ushort rwyVersionMajor, ushort rwyVersionMinor)
23 | {
24 | Position.ToStream(bs);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/PDTools.Files/Fonts/GlyphLine.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Fonts;
8 |
9 | public struct GlyphLine : IGlyphShapeData
10 | {
11 | public float Distance { get; set; }
12 | public GlyphAxis Axis { get; set; }
13 |
14 | public GlyphLine(float distance, GlyphAxis axis)
15 | {
16 | Distance = distance;
17 | Axis = axis;
18 | }
19 |
20 | public override readonly string ToString()
21 | {
22 | return $"Line - {Axis}: {Distance}";
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PDTools.Files/Fonts/GlyphPoint.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Fonts;
8 |
9 | public struct GlyphPoint : IGlyphShapeData
10 | {
11 | public float X { get; set; }
12 | public float Y { get; set; }
13 |
14 | public GlyphPoint(float x, float y)
15 | {
16 | X = x;
17 | Y = y;
18 | }
19 |
20 | public override readonly string ToString()
21 | {
22 | return $"Point - X: {X}, Y: {Y}";
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PDTools.Files/Fonts/GlyphQuadraticBezierCurve.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Fonts;
8 |
9 | public struct GlyphQuadraticBezierCurve : IGlyphShapeData
10 | {
11 | public float P1_DistX { get; set; }
12 | public float P1_DistY { get; set; }
13 | public float P2_DistX { get; set; }
14 | public float P2_DistY { get; set; }
15 |
16 | public GlyphQuadraticBezierCurve(float p1_X, float p1_Y, float p2_X, float p2_Y)
17 | {
18 | P1_DistX = p1_X;
19 | P1_DistY = p1_Y;
20 | P2_DistX = p2_X;
21 | P2_DistY = p2_Y;
22 | }
23 |
24 | public override readonly string ToString()
25 | {
26 | return $"Curve - X1Dist:{P1_DistX} Y1Dist:{P1_DistY} X2Dist:{P2_DistX} Y2Dist:{P2_DistY}";
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/PDTools.Files/Fonts/GlyphStartPoint.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Fonts;
8 |
9 | public struct GlyphStartPoint : IGlyphShapeData
10 | {
11 | public float X { get; set; }
12 | public float Y { get; set; }
13 |
14 | public bool? Unk { get; set; }
15 | public bool? Unk2 { get; set; }
16 |
17 | public GlyphStartPoint(float x, float y)
18 | {
19 | X = x;
20 | Y = y;
21 |
22 | Unk = null;
23 | Unk2 = null;
24 | }
25 |
26 | public override readonly string ToString()
27 | {
28 | return $"Start Point - X: {X}, Y:{Y}, {Unk} {Unk2}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Fonts/IGlyphShapeData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Fonts;
8 |
9 | public interface IGlyphShapeData
10 | {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/CarModel1/CollisionParticle.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Numerics;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.CarModel1;
11 |
12 | public class CollisionParticle
13 | {
14 | public Vector3 Position { get; set; }
15 |
16 | public void FromStream(BinaryStream bs)
17 | {
18 | Position = new Vector3(bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle());
19 | bs.Position += 0x4; // Empty
20 | }
21 |
22 | public void Write(BinaryStream bs)
23 | {
24 | bs.WriteSingle(Position.X); bs.WriteSingle(Position.Y); bs.WriteSingle(Position.Z);
25 | bs.Position += 0x4;
26 | }
27 |
28 | public static uint GetSize()
29 | {
30 | return 0x10;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/CarModel1/ExhaustData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Numerics;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.CarModel1;
11 |
12 | public class ExhaustData
13 | {
14 | public Vector3 Position { get; set; }
15 |
16 | public void FromStream(BinaryStream bs)
17 | {
18 | Position = new Vector3(bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle());
19 | bs.Position += 0x14; // Empty
20 | }
21 |
22 | public void Write(BinaryStream bs)
23 | {
24 | bs.WriteSingle(Position.X); bs.WriteSingle(Position.Y); bs.WriteSingle(Position.Z);
25 | bs.Position += 0x14;
26 | }
27 |
28 | public static uint GetSize()
29 | {
30 | return 0x20;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/ModelSet/ModelPS2Base.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using PDTools.Files.Models.PS2.RenderCommands;
8 | using PDTools.Files.Textures.PS2;
9 |
10 | namespace PDTools.Files.Models.PS2.ModelSet;
11 |
12 | public abstract class ModelPS2Base
13 | {
14 | ///
15 | /// Commands interpreted on every tick to figure how and what shape should be rendered.
16 | ///
17 | public List Commands { get; set; } = [];
18 | }
19 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/ModelSet/ModelSet1Bounding.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.ModelSet;
11 |
12 | ///
13 | /// Bounding (?)
14 | ///
15 | public class ModelSet1Bounding
16 | {
17 | public Vector4 Value { get; set; } // Only W is used, for computing LOD width? see: GT3 EU 0x225f08 (defaultLOD)
18 |
19 | public void FromStream(BinaryStream bs)
20 | {
21 | Value = new Vector4(bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle());
22 | }
23 |
24 | public void Write(BinaryStream bs)
25 | {
26 | bs.WriteSingle(Value.X); bs.WriteSingle(Value.Y); bs.WriteSingle(Value.Z); bs.WriteSingle(Value.W);
27 | }
28 |
29 | public static int GetSize()
30 | {
31 | return 0x10;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_CallVM.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_CallVM : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.CallVM;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_CallVM)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_JumpByte.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_JumpByte : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.Jump_Byte;
15 |
16 | public byte JumpOffset { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | JumpOffset = bs.Read1Byte();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteByte(JumpOffset);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Cmd_JumpByte)}";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_JumpShort.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_JumpUShort : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.Jump_UShort;
15 |
16 | public ushort JumpOffset { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | JumpOffset = bs.ReadUInt16();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteUInt16(JumpOffset);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Cmd_JumpUShort)}";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_RenderModel_Byte.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_RenderModel_Byte : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.RenderModel_Byte;
15 |
16 | public byte ModelIndex { get; set; }
17 |
18 | public Cmd_RenderModel_Byte()
19 | {
20 |
21 | }
22 |
23 | public override void Read(BinaryStream bs, int commandsBaseOffset)
24 | {
25 | ModelIndex = bs.Read1Byte();
26 | }
27 |
28 | public override void Write(BinaryStream bs)
29 | {
30 | bs.WriteByte(ModelIndex);
31 | }
32 |
33 | public override string ToString()
34 | {
35 | return $"{nameof(Cmd_RenderModel_Byte)}";
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_RenderModel_UShort.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_RenderModel_UShort : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.RenderModel_UShort;
15 |
16 | public ushort ModelIndex { get; set; }
17 |
18 | public Cmd_RenderModel_UShort()
19 | {
20 |
21 | }
22 |
23 | public override void Read(BinaryStream bs, int commandsBaseOffset)
24 | {
25 | ModelIndex = bs.ReadUInt16();
26 | }
27 |
28 | public override void Write(BinaryStream bs)
29 | {
30 | bs.WriteUInt16(ModelIndex);
31 | }
32 |
33 | public override string ToString()
34 | {
35 | return $"{nameof(Cmd_RenderModel_UShort)}";
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_VMCallbackByte.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// GT4
14 | ///
15 | public class Cmd_VMCallbackByte : ModelSetupPS2Command
16 | {
17 | public byte Param { get; set; }
18 |
19 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.VMCallback_Byte;
20 |
21 | public override void Read(BinaryStream bs, int commandsBaseOffset)
22 | {
23 | Param = bs.Read1Byte();
24 | }
25 |
26 | public override void Write(BinaryStream bs)
27 | {
28 | bs.WriteByte(Param);
29 | }
30 |
31 | public override string ToString()
32 | {
33 | return $"{nameof(Cmd_VMCallbackByte)}";
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_VMCallbackUShort.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// GT4
14 | ///
15 | public class Cmd_VMCallbackUShort : ModelSetupPS2Command
16 | {
17 | public ushort Param { get; set; }
18 |
19 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.VMCallback_UShort;
20 |
21 | public override void Read(BinaryStream bs, int commandsBaseOffset)
22 | {
23 | Param = bs.ReadUInt16();
24 | }
25 |
26 | public override void Write(BinaryStream bs)
27 | {
28 | bs.WriteUInt16(Param);
29 | }
30 |
31 | public override string ToString()
32 | {
33 | return $"{nameof(Cmd_VMCallbackUShort)}";
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglCopyFogColor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglCopyFogColor : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglCopyFogColor;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglCopyFogColor)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglCullFace_1.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// GT4 and above. Calls pglCullFace(1)
14 | ///
15 | public class Cmd_pglCullFace_1 : ModelSetupPS2Command
16 | {
17 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglCullFace_1;
18 |
19 | public float Color { get; set; }
20 |
21 | public Cmd_pglCullFace_1()
22 | {
23 |
24 | }
25 |
26 | public override void Read(BinaryStream bs, int commandsBaseOffset)
27 | {
28 |
29 | }
30 |
31 | public override void Write(BinaryStream bs)
32 | {
33 |
34 | }
35 |
36 | public override string ToString()
37 | {
38 | return $"{nameof(Cmd_pglCullFace_1)}";
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglCullFace_2.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// GT4 and above. Calls pglCullFace(2)
14 | ///
15 | public class Cmd_pglCullFace_2 : ModelSetupPS2Command
16 | {
17 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglCullFace_2;
18 |
19 | public float Color { get; set; }
20 |
21 | public Cmd_pglCullFace_2()
22 | {
23 |
24 | }
25 |
26 | public override void Read(BinaryStream bs, int commandsBaseOffset)
27 | {
28 |
29 | }
30 |
31 | public override void Write(BinaryStream bs)
32 | {
33 |
34 | }
35 |
36 | public override string ToString()
37 | {
38 | return $"{nameof(Cmd_pglCullFace_2)}";
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglDisableAlphaTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglDisableAlphaTest : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglDisableAlphaTest;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglDisableAlphaTest)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglDisableCullFace.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 | using PDTools.Files.Models.PS2.RenderCommands;
10 |
11 | namespace PDTools.Files.Models.PS2.Commands;
12 |
13 | ///
14 | /// Calls glDisable(15). Disables face culling
15 | ///
16 | public class Cmd_pglDisableCullFace : ModelSetupPS2Command
17 | {
18 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglDisableCullFace;
19 |
20 | public override void Read(BinaryStream bs, int commandsBaseOffset)
21 | {
22 |
23 | }
24 |
25 | public override void Write(BinaryStream bs)
26 | {
27 |
28 | }
29 |
30 | public override string ToString()
31 | {
32 | return $"{nameof(Cmd_pglDisableCullFace)}";
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglDisableDepthMask.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglDisableDepthMask : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglDisableDepthMask;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglDisableDepthMask)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglDisableDepthTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglDisableDepthTest : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglDisableDepthTest;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglDisableDepthTest)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglDisableDestinationAlphaTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglDisableDestinationAlphaTest : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglDisableDestinationAlphaTest;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglDisableDestinationAlphaTest)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnable17.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglEnableRendering : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglEnableRendering;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglEnableRendering)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnable19_14.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglEnable19_14 : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglDisable19_14;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglEnable19_14)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnableAlphaTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglEnableAlphaTest : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglEnableAlphaTest;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglEnableAlphaTest)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnableCullFace.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// Calls glEnable(15). Enables face culling
14 | ///
15 | public class Cmd_pglEnableCullFace : ModelSetupPS2Command
16 | {
17 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglEnableCullFace;
18 |
19 | public override void Read(BinaryStream bs, int commandsBaseOffset)
20 | {
21 |
22 | }
23 |
24 | public override void Write(BinaryStream bs)
25 | {
26 |
27 | }
28 |
29 | public override string ToString()
30 | {
31 | return $"{nameof(Cmd_pglEnableCullFace)}";
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnableDepthMask.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglEnableDepthMask : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglEnableDepthMask;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglEnableDepthMask)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnableDepthTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglEnableDepthTest : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglEnableDepthTest;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglEnableDepthTest)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglEnableDestinationAlphaTest.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglEnableDestinationAlphaTest : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglEnableDestinationAlphaTest;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglEnableDestinationAlphaTest)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglPopMatrix.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// Pops the current matrix stack, replacing the current matrix with the one below it on the stack. Similar to glPopMatrix
14 | ///
15 | public class Cmd_pglPopMatrix : ModelSetupPS2Command
16 | {
17 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglPopMatrix;
18 |
19 | public override void Read(BinaryStream bs, int commandsBaseOffset)
20 | {
21 |
22 | }
23 |
24 | public override void Write(BinaryStream bs)
25 | {
26 |
27 | }
28 |
29 | public override string ToString()
30 | {
31 | return $"{nameof(Cmd_pglPopMatrix)}";
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglPushMatrix.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// Pushes the current matrix stack down by one, duplicating the current matrix. Similar to glPushMatrix
14 | ///
15 | public class Cmd_pglPushMatrix : ModelSetupPS2Command
16 | {
17 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglPushMatrix;
18 |
19 | public override void Read(BinaryStream bs, int commandsBaseOffset)
20 | {
21 |
22 | }
23 |
24 | public override void Write(BinaryStream bs)
25 | {
26 |
27 | }
28 |
29 | public override string ToString()
30 | {
31 | return $"{nameof(Cmd_pglPushMatrix)}";
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglStoreFogColor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pglStoreFogColor : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglStoreFogColor;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Cmd_pglStoreFogColor)}";
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pglTexGenf_Default.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | ///
13 | /// GT4 and above. Calls pglTexGenf(3, 0.0) and pglTexGenf(2, 1.0)
14 | ///
15 | public class Cmd_pglTexGenf_Default : ModelSetupPS2Command
16 | {
17 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglTexGenf_Default;
18 |
19 | public override void Read(BinaryStream bs, int commandsBaseOffset)
20 | {
21 |
22 | }
23 |
24 | public override void Write(BinaryStream bs)
25 | {
26 |
27 | }
28 |
29 | public override string ToString()
30 | {
31 | return $"{nameof(Cmd_pglTexGenf_Default)}";
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pgluCallShape_Byte.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pgluCallShapeByte : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pgluCallShape_Byte;
15 |
16 | public byte ShapeIndex { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | ShapeIndex = bs.Read1Byte();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteByte(ShapeIndex);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Cmd_pgluCallShapeByte)} - Shape: {ShapeIndex}";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pgluCallShape_UShort.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pgluCallShape_UShort : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pgluCallShape_UShort;
15 |
16 | public ushort ShapeIndex { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | ShapeIndex = bs.ReadUInt16();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteUInt16(ShapeIndex);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Cmd_pgluCallShape_UShort)} - Shape: {ShapeIndex}";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS2/RenderCommands/Cmd_pgluSetExternalMatIndex.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS2.RenderCommands;
11 |
12 | public class Cmd_pgluSetExternalMatIndex : ModelSetupPS2Command
13 | {
14 | public override ModelSetupPS2Opcode Opcode => ModelSetupPS2Opcode.pglExternalMatIndex;
15 |
16 | public byte MatIndex { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | MatIndex = bs.Read1Byte();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteByte(MatIndex);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Cmd_pgluSetExternalMatIndex)} - Mat: {MatIndex}";
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/FVF/MDL3FVFDefinitionCollection.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Models.PS3.ModelSet3.FVF;
8 |
9 | internal class MDL3FVFDefinitionCollection
10 | {
11 | }
12 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/MDL3ModelVMContext.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.ModelSet3;
11 |
12 | public class MDL3ModelVMContext
13 | {
14 | public int UnkVMInsPtr { get; set; }
15 | public int UnkVMInsPtr2 { get; set; }
16 | public int Unk { get; set; }
17 | public static MDL3ModelVMContext FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
18 | {
19 | MDL3ModelVMContext ctx = new();
20 |
21 | ctx.UnkVMInsPtr = bs.ReadInt32();
22 | ctx.UnkVMInsPtr2 = bs.ReadInt32();
23 | bs.ReadInt32();
24 | ctx.Unk = bs.ReadInt32();
25 |
26 | return ctx;
27 | }
28 |
29 | public static int GetSize()
30 | {
31 | return 0x20;
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/MDL3ModelVMUnk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.ModelSet3;
11 |
12 | public class MDL3ModelVMUnk
13 | {
14 | public short[] UnkIndices { get; set; }
15 |
16 | public static MDL3ModelVMUnk FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
17 | {
18 | MDL3ModelVMUnk unk = new();
19 |
20 | int indicesOffset = bs.ReadInt32();
21 |
22 | bs.Position += 0x2C;
23 | short indexCount = bs.ReadInt16();
24 |
25 | bs.Position = indicesOffset;
26 | unk.UnkIndices = bs.ReadInt16s(indexCount);
27 |
28 | return unk;
29 | }
30 |
31 | public static int GetSize()
32 | {
33 | return 0x40;
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/Materials/CellGcmParams.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.ModelSet3.Materials;
10 |
11 | public class CellGcmParams
12 | {
13 | public int[] Params { get; set; } = new int[40];
14 |
15 | public static CellGcmParams FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
16 | {
17 | CellGcmParams entry = new();
18 | entry.Params = bs.ReadInt32s(40);
19 |
20 | return entry;
21 | }
22 |
23 | public static int GetSize()
24 | {
25 | return 0xA0;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/Materials/MDL3MaterialData_0x18.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.ModelSet3.Materials;
10 |
11 | public class MDL3MaterialData_0x18
12 | {
13 | public short[] Data { get; set; }
14 |
15 | public static MDL3MaterialData_0x18 FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
16 | {
17 | MDL3MaterialData_0x18 entry = new MDL3MaterialData_0x18();
18 |
19 | int shortCount = bs.ReadInt32();
20 | int offset = bs.ReadInt32();
21 |
22 | bs.Position = mdlBasePos + offset;
23 | entry.Data = bs.ReadInt16s(shortCount);
24 |
25 | return entry;
26 | }
27 |
28 | public static int GetSize()
29 | {
30 | return 0x08;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/Materials/MDL3MaterialData_0x1C.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.ModelSet3.Materials;
10 |
11 | public class MDL3MaterialData_0x1C
12 | {
13 | public int Unk { get; set; }
14 | public int Unk2 { get; set; }
15 |
16 | public static MDL3MaterialData_0x1C FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
17 | {
18 | MDL3MaterialData_0x1C entry = new MDL3MaterialData_0x1C();
19 |
20 | entry.Unk = bs.ReadInt32();
21 | entry.Unk2 = bs.ReadInt32();
22 |
23 | return entry;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/Meshes/MDL3MeshPackedMeshRef.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | using System.Numerics;
5 | using System.Windows.Markup;
6 |
7 | using Syroot.BinaryData;
8 |
9 |
10 | namespace PDTools.Files.Models.PS3.ModelSet3.Meshes;
11 |
12 | public class MDL3MeshPackedMeshRef
13 | {
14 | public float[] Values { get; set; } = new float[12];
15 | public int PackedMeshEntryIndex { get; set; }
16 | public static MDL3MeshPackedMeshRef FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
17 | {
18 | long unkBasePos = bs.Position;
19 |
20 | var unk = new MDL3MeshPackedMeshRef();
21 | unk.Values = bs.ReadSingles(12);
22 | int unkOffset = bs.ReadInt32();
23 | unk.PackedMeshEntryIndex = bs.ReadInt32();
24 |
25 | return unk;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/ShapeStream/MDL3ShapeStreamingInfoMeshEntry.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.ModelSet3.ShapeStream;
10 |
11 | public class MDL3ShapeStreamingInfoMeshEntry
12 | {
13 | public uint OffsetInChunk { get; set; }
14 | public ushort MeshIndex { get; set; }
15 | public ushort Unk { get; set; }
16 |
17 | public static MDL3ShapeStreamingInfoMeshEntry FromStream(BinaryStream bs, long baseMdlPos, uint mdl3Version)
18 | {
19 | MDL3ShapeStreamingInfoMeshEntry entry = new MDL3ShapeStreamingInfoMeshEntry();
20 | entry.OffsetInChunk = bs.ReadUInt32();
21 | entry.MeshIndex = bs.ReadUInt16();
22 | entry.Unk = bs.ReadUInt16();
23 |
24 | return entry;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/Wing/MDL3WingData.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.ModelSet3.Wing;
10 |
11 | public class MDL3WingData
12 | {
13 | public string Name { get; set; }
14 |
15 | public static MDL3WingData FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3VersionMajor)
16 | {
17 | MDL3WingData entry = new();
18 |
19 |
20 | return entry;
21 | }
22 |
23 | public static int GetSize()
24 | {
25 | return 0x80;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/ModelSet3/Wing/MDL3WingKey.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 |
5 | using Syroot.BinaryData;
6 |
7 | namespace PDTools.Files.Models.PS3.ModelSet3.Wing;
8 |
9 | public class MDL3WingKey
10 | {
11 | public uint WingDataID { get; set; }
12 | public string Name { get; set; }
13 |
14 | public static MDL3WingKey FromStream(BinaryStream bs, long mdlBasePos, ushort mdl3Version)
15 | {
16 | MDL3WingKey modelKey = new();
17 | int strOffset = bs.ReadInt32();
18 | modelKey.WingDataID = bs.ReadUInt32();
19 |
20 | bs.Position = mdlBasePos + strOffset;
21 | modelKey.Name = bs.ReadString(StringCoding.ZeroTerminated);
22 |
23 | return modelKey;
24 | }
25 |
26 | public static int GetSize()
27 | {
28 | return 0x08;
29 | }
30 |
31 | public override string ToString()
32 | {
33 | return $"{Name} (Wing Data ID: {WingDataID})";
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_0_End.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_0_End : ModelSetupCommand
12 | {
13 | public override void Read(BinaryStream bs, int commandsBaseOffset)
14 | {
15 |
16 | }
17 |
18 | public override void Write(BinaryStream bs)
19 | {
20 |
21 | }
22 |
23 | public override string ToString()
24 | {
25 | return nameof(Command_0_End);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_11_PSP_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Some graphics command - matrix related? Start render?
13 | ///
14 | public class Command_11_PSP_Unk : ModelSetupCommand
15 | {
16 | public byte Unk { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Unk = bs.Read1Byte();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteByte(Unk);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_11_PSP_Unk)} - {Unk}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_13_PSP_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Some graphics command - matrix related? Start render?
13 | ///
14 | public class Command_13_PSP_Unk : ModelSetupCommand
15 | {
16 | public byte Unk { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Unk = bs.Read1Byte();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteByte(Unk);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_13_PSP_Unk)} - {Unk}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_14_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Some graphics command - matrix related? Start render?
13 | ///
14 | public class Command_14_Unk : ModelSetupCommand
15 | {
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 |
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 |
25 | }
26 |
27 | public override string ToString()
28 | {
29 | return $"{nameof(Command_14_Unk)}";
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_15_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Some graphics command
13 | ///
14 | public class Command_15_Unk : ModelSetupCommand
15 | {
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 |
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 |
25 | }
26 |
27 | public override string ToString()
28 | {
29 | return $"{nameof(Command_15_Unk)}";
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_16_PushMatrixMaybe.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Not sure
13 | ///
14 | public class Command_16_PGLInverse : ModelSetupCommand
15 | {
16 | public float[] Matrix { get; set; }
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 | Matrix = bs.ReadSingles(16);
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | for (var i = 0; i < 16; i++)
25 | bs.WriteSingle(Matrix[i]);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_16_PGLInverse)} - {string.Join(", ", Matrix)}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_18_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | ///
13 | /// Matrix related?
14 | ///
15 | public class Command_18_PGLScale : ModelSetupCommand
16 | {
17 | public Vector3 Vec { get; set; }
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Vec = new Vector3(bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle());
21 |
22 | }
23 |
24 | public override void Write(BinaryStream bs)
25 | {
26 |
27 | }
28 |
29 | public override string ToString()
30 | {
31 | return $"{nameof(Command_18_PGLScale)} - {Vec}";
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_19_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | ///
13 | /// Matrix related?
14 | ///
15 | public class Command_19_PGLRotate : ModelSetupCommand
16 | {
17 | public Vector3 Vec { get; set; }
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Vec = new Vector3(bs.ReadSingle(), bs.ReadSingle(), bs.ReadSingle());
21 |
22 | }
23 |
24 | public override void Write(BinaryStream bs)
25 | {
26 |
27 | }
28 |
29 | public override string ToString()
30 | {
31 | return $"{nameof(Command_19_PGLRotate)} - {Vec}";
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_20_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | ///
13 | /// Matrix related?
14 | ///
15 | public class Command_20_PGLRotateX : ModelSetupCommand
16 | {
17 | public float[] Values { get; set; }
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Values = bs.ReadSingles(4);
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteSingles(Values);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_20_PGLRotateX)} - {string.Join(", ", Values)}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_21_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_21_PGLRotateY : ModelSetupCommand
13 | {
14 | public float Value { get; set; }
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Value = bs.ReadSingle();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteSingle(Value);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_21_PGLRotateY)} - {Value}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_22_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_22_PGLRotateZ : ModelSetupCommand
13 | {
14 | public float Value { get; set; }
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Value = bs.ReadSingle();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteSingle(Value);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_22_PGLRotateZ)} - {Value}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_23_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_23_Unk : ModelSetupCommand
13 | {
14 | public float Value { get; set; }
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Value = bs.ReadSingle();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteSingle(Value);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_23_Unk)} - {Value}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_24_SetDepthTestEnabled.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_24_SetDepthTestEnabled : ModelSetupCommand
13 | {
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_24_SetDepthTestEnabled)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_25_SetDepthTestDisabled.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_25_SetDepthTestDisabled : ModelSetupCommand
13 | {
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_25_SetDepthTestDisabled)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_26_SetDepthFunc.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_26_SetDepthFunc : ModelSetupCommand
13 | {
14 | public byte Func { get; set; }
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Func = bs.Read1Byte();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteByte(Func);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_26_SetDepthFunc)}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_27_SetAlphaTestEnabled.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_27_SetAlphaTestEnabled : ModelSetupCommand
13 | {
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_27_SetAlphaTestEnabled)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_28_SetAlphaTestDisabled.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Numerics;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_28_SetAlphaTestDisabled : ModelSetupCommand
13 | {
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_28_SetAlphaTestDisabled)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_2_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_2_Unk : ModelSetupCommand
12 | {
13 | public short ModelIndex;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | ModelIndex = bs.ReadInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteInt16(ModelIndex);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_2_Unk)}: {ModelIndex}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_34_SetColorMask.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | // CELL_GCM_NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR
12 | public class Command_34_SetColorMask : ModelSetupCommand
13 | {
14 | public byte MaskBoolBits { get; set; }
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 | MaskBoolBits = bs.Read1Byte();
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 | bs.WriteByte(MaskBoolBits);
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Command_34_SetColorMask)} - Mask:{MaskBoolBits}";
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_35_SetDepthMaskEnabled.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | // CELL_GCM_NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR
12 | public class Command_35_SetDepthMaskEnabled : ModelSetupCommand
13 | {
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_35_SetDepthMaskEnabled)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_36_SetDepthMaskDisabled.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | // CELL_GCM_NV4097_SET_POLYGON_OFFSET_SCALE_FACTOR
12 | public class Command_36_SetDepthMaskDisabled : ModelSetupCommand
13 | {
14 | public byte MaskBoolBits { get; set; }
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 | MaskBoolBits = bs.Read1Byte();
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 | bs.WriteByte(MaskBoolBits);
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Command_36_SetDepthMaskDisabled)} - Mask:{MaskBoolBits}";
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_38_SetCullFaceDisable.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_38_SetCullFaceDisable : ModelSetupCommand
12 | {
13 |
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_38_SetCullFaceDisable)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_39_SetCullFaceDisable.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_39_SetCullFaceDisable : ModelSetupCommand
12 | {
13 |
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_39_SetCullFaceDisable)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_3_LoadMeshByteIndex.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Reflection.Metadata.Ecma335;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 |
8 | using Syroot.BinaryData;
9 |
10 | namespace PDTools.Files.Models.PS3.PGLCommands
11 | {
12 | public class Command_3_LoadMeshByteIndex : ModelSetupCommand
13 | {
14 | public byte MeshIndex;
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 | MeshIndex = bs.Read1Byte();
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 | bs.WriteByte(MeshIndex);
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Command_3_LoadMeshByteIndex)}: {MeshIndex}";
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_40_SetCullFaceBack.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_40_SetCullFaceBack : ModelSetupCommand
12 | {
13 |
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_40_SetCullFaceBack)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_41_SetCullFaceFront.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_41_SetCullFaceFront : ModelSetupCommand
12 | {
13 |
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_41_SetCullFaceFront)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_42_SetCullFaceSwitch.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_42_SetCullFaceSwitch : ModelSetupCommand
12 | {
13 |
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_42_SetCullFaceSwitch)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_43_SetVMUnk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_43_SetVMUnk : ModelSetupCommand
12 | {
13 | public int Unk { get; set; }
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 | Unk = bs.ReadInt32();
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 | bs.WriteInt32(Unk);
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_43_SetVMUnk)} - {Unk}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_44_CallVM_Ptr2.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_44_CallVM_Ptr2 : ModelSetupCommand
12 | {
13 |
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 |
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 |
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_44_CallVM_Ptr2)}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_45_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_45_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 | Unk = bs.ReadUInt16();
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 | bs.WriteUInt16(Unk);
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_45_Unk)} - {Unk}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_46_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_46_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 | Unk = bs.ReadUInt16();
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 | bs.WriteUInt16(Unk);
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_46_Unk)} - {Unk}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_47_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_47_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 | Unk = bs.ReadUInt16();
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 | bs.WriteUInt16(Unk);
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_47_Unk)} - {Unk}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_49_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_49_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 | Unk = bs.ReadUInt16();
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 | bs.WriteUInt16(Unk);
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_49_Unk)} - {Unk}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_4_LoadMeshUShortIndex.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_4_LoadMeshUShortIndex : ModelSetupCommand
12 | {
13 | public short MeshIndex;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | MeshIndex = bs.ReadInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteInt16(MeshIndex);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_4_LoadMeshUShortIndex)}: {MeshIndex}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_50_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_50_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 | public override void Read(BinaryStream bs, int commandsBaseOffset)
15 | {
16 | Unk = bs.ReadUInt16();
17 | }
18 |
19 | public override void Write(BinaryStream bs)
20 | {
21 | bs.WriteUInt16(Unk);
22 | }
23 |
24 | public override string ToString()
25 | {
26 | return $"{nameof(Command_50_Unk)} - {Unk}";
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_51_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_51_Unk : ModelSetupCommand
12 | {
13 | public ushort UnkIndex { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | UnkIndex = bs.ReadUInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteUInt16(UnkIndex);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_51_Unk)} - Index: {UnkIndex}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_52_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_52_Unk : ModelSetupCommand
12 | {
13 | public ushort UnkIndex { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | UnkIndex = bs.ReadUInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteUInt16(UnkIndex);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_52_Unk)} - Index: {UnkIndex}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_53_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_53_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Unk = bs.ReadUInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteUInt16(Unk);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_53_Unk)}: {Unk}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_56_PSP_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Seen in GT PSP, not present in GT6 - seemingly unused
13 | ///
14 | public class Command_56_PSP_Unk : ModelSetupCommand
15 | {
16 | public byte[] Values { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Values = bs.ReadBytes(0x10);
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteBytes(Values);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_56_PSP_Unk)}: {string.Join(",", Values)}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_59_LoadMesh2_Byte.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_59_LoadMesh2_Byte : ModelSetupCommand
12 | {
13 | public byte MeshID { get; set; }
14 | public byte Unk { get; set; }
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 | MeshID = bs.Read1Byte();
19 | Unk = bs.Read1Byte();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteByte(MeshID);
25 | bs.WriteByte(Unk);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_59_LoadMesh2_Byte)}: {MeshID} {Unk}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_60_LoadMesh2_UShort.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_60_LoadMesh2_UShort : ModelSetupCommand
12 | {
13 | public short Unk { get; set; }
14 | public short Unk2 { get; set; }
15 |
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 | Unk = bs.ReadInt16();
19 | Unk2 = bs.ReadInt16();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteInt16(Unk);
25 | bs.WriteInt16(Unk2);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_60_LoadMesh2_UShort)} - {Unk} {Unk2}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_61_Semaphore_InvalidateL2.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Invalidate texture cache maybe?
13 | ///
14 | public class Command_61_Semaphore_InvalidateL2 : ModelSetupCommand
15 | {
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 |
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 |
25 | }
26 |
27 | public override string ToString()
28 | {
29 | return $"{nameof(Command_61_Semaphore_InvalidateL2)}";
30 | }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_62_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_62_Unk : ModelSetupCommand
12 | {
13 | public ushort Unk { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Unk = bs.ReadUInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteUInt16(Unk);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_62_Unk)}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_65_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Doesn't seem to do anything?
13 | ///
14 | public class Command_65_Unk : ModelSetupCommand
15 | {
16 | public ushort Unk { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Unk = bs.ReadUInt16();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteUInt16(Unk);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_65_Unk)}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_66_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_66_Unk : ModelSetupCommand
12 | {
13 | public uint Unk { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Unk = bs.ReadUInt32();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteUInt32(Unk);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_66_Unk)}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_67_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Same as 66
13 | ///
14 | public class Command_67_Unk : ModelSetupCommand
15 | {
16 | public uint Unk { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Unk = bs.ReadUInt32();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteUInt32(Unk);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_67_Unk)}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_69_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Doesn't do anything?
13 | ///
14 | public class Command_69_Unk : ModelSetupCommand
15 | {
16 | public byte Unk { get; set; }
17 |
18 | public override void Read(BinaryStream bs, int commandsBaseOffset)
19 | {
20 | Unk = bs.Read1Byte();
21 | }
22 |
23 | public override void Write(BinaryStream bs)
24 | {
25 | bs.WriteByte(Unk);
26 | }
27 |
28 | public override string ToString()
29 | {
30 | return $"{nameof(Command_69_Unk)} - {Unk}";
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_6_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_6_Unk : ModelSetupCommand
12 | {
13 | public byte Value { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Value = bs.Read1Byte();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteByte(Value);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_6_Unk)}: {Value}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_70_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Not present in GT PSP
13 | ///
14 | public class Command_70_Unk : ModelSetupCommand
15 | {
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Command_70_Unk)}";
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_71_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | ///
12 | /// Not present in GT PSP
13 | ///
14 | public class Command_71_Unk : ModelSetupCommand
15 | {
16 | public override void Read(BinaryStream bs, int commandsBaseOffset)
17 | {
18 |
19 | }
20 |
21 | public override void Write(BinaryStream bs)
22 | {
23 |
24 | }
25 |
26 | public override string ToString()
27 | {
28 | return $"{nameof(Command_71_Unk)}";
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_72_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_72_Unk : ModelSetupCommand
12 | {
13 | public override void Read(BinaryStream bs, int commandsBaseOffset)
14 | {
15 | throw new NotSupportedException("Implement command 72 if you see it");
16 | }
17 |
18 | public override void Write(BinaryStream bs)
19 | {
20 |
21 | }
22 |
23 | public override string ToString()
24 | {
25 | return $"{nameof(Command_72_Unk)}";
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/PS3/PGLCommands/Command_7_Unk.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.PS3.PGLCommands
10 | {
11 | public class Command_7_Unk : ModelSetupCommand
12 | {
13 | public ushort Value { get; set; }
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 | Value = bs.ReadUInt16();
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 | bs.WriteUInt16(Value);
23 | }
24 |
25 | public override string ToString()
26 | {
27 | return $"{nameof(Command_7_Unk)}: {Value}";
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/Shaders/ShaderProgram_0x40.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.Shaders;
10 |
11 | public class ShadersProgram_0x40
12 | {
13 | public byte[] Program { get; set; }
14 | public static ShadersProgram_0x40 FromStream(BinaryStream bs, long basePos)
15 | {
16 | var prog = new ShadersProgram_0x40();
17 | int unkOffset = bs.ReadInt32();
18 | int programOffset = bs.ReadInt32();
19 | int programSize = bs.ReadInt32();
20 |
21 | bs.Position = basePos + programOffset;
22 | prog.Program = bs.ReadBytes(programSize);
23 |
24 | return prog;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/ShapeStream/ShapeStreamMesh.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Syroot.BinaryData.Memory;
3 | using System.IO;
4 | using PDTools.Files.Models.PS3.ModelSet3.ShapeStream;
5 |
6 | namespace PDTools.Files.Models.ShapeStream;
7 |
8 | public class ShapeStreamMesh
9 | {
10 | public const int HeaderSize = 0x80;
11 |
12 | public ShapeStreamChunk ShapeStreamChunk { get; set; }
13 | public MDL3ShapeStreamingInfoMeshEntry InfoMeshEntry { get; set; }
14 |
15 | public Memory MeshData { get; set; }
16 | public uint ChunkSize { get; set; }
17 | public uint VerticesOffset { get; set; }
18 | public uint TriOffset { get; set; }
19 | public uint BBoxOffset { get; set; }
20 | public uint Unk0x1COffset { get; set; }
21 | }
22 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VM0x10.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VM0x10 : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.StackVariableEval;
14 |
15 | public short Value { get; set; }
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 | Value = bs.ReadInt16();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteInt16(Value);
25 | }
26 |
27 | public override string Disassemble(Dictionary values)
28 | {
29 | return $"{nameof(VM0x10)}: Index:{Value}";
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VM0xC2.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VM0xC2 : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Unk0xC2;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMAdd.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMAdd : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Add;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"ADD: +";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMAddF.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMAddF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatAddition;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"ADD_FLOAT: /";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMAtan2F.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMAtan2F : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatAtan2;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"ATAN2F";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMBinaryAnd.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMBinaryAnd : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.BinaryAndOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"AND: &";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMBinaryLeftShift.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMBinaryLeftShift : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.BinaryLeftShiftOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"LEFT_SHIFT: <<";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMBinaryOr.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMBinaryOr : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.BinaryOrOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"OR: |";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMBinaryRightShift.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMBinaryRightShift : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.BinaryRightShiftOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"RIGHT_SHIFT: >>";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMBinaryXor.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMBinaryXor : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.BinaryXorOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"XOR: ^";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMCosF.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMCosF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatCos;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"COSF";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMDivide.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMDivide : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Divide;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"BINARY_DIVIDE: /";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMDivideF.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMDivideF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatDivide;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"BINARY_DIVIDE_FLOAT: /";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMEquals.cs:
--------------------------------------------------------------------------------
1 | using Syroot.BinaryData;
2 |
3 | using System;
4 | using System.Collections.Generic;
5 | using System.Linq;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMEquals : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Equals;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"EQUALS: ==";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMEqualsF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMEqualsF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatEquals;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"EQUALS_FLOAT: ==";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMFloatToInt.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMFloatToInt : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.ToInt;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"FLOAT_TO_INT";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMGreaterThan.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMGreaterThan : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.GreaterThen;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"GREATER_THAN: >";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMGreaterThanF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMGreaterThanF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatGreaterThen;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"GREATER_THAN_FLOAT: >";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMGreatherEqualTo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMGreaterEqualTo : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.GreaterOrEqualTo;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"GREATER_EQUAL_TO: >=";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMGreatherEqualToF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMGreaterEqualToF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatGreaterOrEqualTo;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"GREATER_EQUAL_TO_FLOAT: >=";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMIntConst.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMIntConst : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.PushIntConst;
14 |
15 | public int Value { get; set; }
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 | Value = bs.ReadInt32();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteInt32(Value);
25 | }
26 |
27 | public override string Disassemble(Dictionary values)
28 | {
29 | return $"CONST_VALUE: {Value} ({BitConverter.Int32BitsToSingle(Value)})";
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMIntToFloat.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMIntToFloat : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.ToFloat;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"INT_TO_CONST";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMJump.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMJump : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.JumpRelative;
14 |
15 | public short JumpOffset { get; set; }
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 | JumpOffset = bs.ReadInt16();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteInt16(JumpOffset);
25 | }
26 |
27 | public override string Disassemble(Dictionary values)
28 | {
29 | return $"JUMP: Offset={Offset + JumpOffset + 3:X2}";
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMJumpIfFalse.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMJumpIfFalse : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.JumpNotZero;
14 |
15 | public short JumpOffset { get; set; }
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 | JumpOffset = bs.ReadInt16();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteInt16(JumpOffset);
25 | }
26 |
27 | public override string Disassemble(Dictionary values)
28 | {
29 | return $"JUMP_IF_FALSE: Offset={Offset + JumpOffset + 3:X2}";
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMLesserEqualTo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMLesserEqualTo : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.LesserOrEqualTo;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"LESSER_EQUAL_TO: <=";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMLesserEqualToF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMLesserEqualToF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatLesserOrEqualTo;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"LESSER_EQUAL_TO_FLOAT: <=";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMLesserThan.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMLesserThan : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.LesserThan;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"LESSER_THAN: <";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMLesserThanF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMLesserThanF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatLesserThan;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"LESSER_EQUAL_TO_FLOAT: <";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMMaxF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMMaxF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatMax;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"MATH_MAX";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMMinF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMMinF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatMin;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"MATH_MIN";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMModulo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMModulo : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Modulo;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"MODULO: %";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMModuloF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMModuloF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatModulus;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"MODULO_FLOAT: %";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMMultiply.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMMultiply : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Multiply;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"MULTIPLY: *";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMMultiplyF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMMultiplyF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatMultiply;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"MULTIPLY_FLOAT: *";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMNotEquals.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMNotEquals : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.NotEqual;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"NOT_EQUAL: !=";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMNotEqualsF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMNotEqualsF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatNotEquals;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"NOT_EQUAl_FLOAT: !=";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMPowF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMPowF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatPow;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"POW_FLOAT";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMRandF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMRandF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatRand;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"RAND_FLOAT";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMReturn.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMReturn : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Return;
14 |
15 | public byte RetOffset { get; set; }
16 |
17 | public override void Read(BinaryStream bs, int commandsBaseOffset)
18 | {
19 | RetOffset = bs.Read1Byte();
20 | }
21 |
22 | public override void Write(BinaryStream bs)
23 | {
24 | bs.WriteByte(RetOffset);
25 | }
26 |
27 | public override string Disassemble(Dictionary values)
28 | {
29 | return $"{nameof(VMReturn)}: {RetOffset}";
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMSignF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMSignF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatSign;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"SIGN_FLOAT";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMSinF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMSinF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatSin;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"SINF";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMSqrtF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMSqrtF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatSquare;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"SQRT";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMSubtract.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMSubtract : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.Subtract;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"SUBTRACT: -";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMSubtractF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMSubtractF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatSubtract;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"SUBTRACT_FLOAT: -";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMTanF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMTanF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatTan;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 |
25 | public override string Disassemble(Dictionary values)
26 | {
27 | return $"TANF";
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMUnaryBitwiseNot.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMUnaryBitwiseNot : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.UnaryBitwiseNotOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMUnaryMinus.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMUnaryMinus : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.UnaryMinusOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/Instructions/VMUnaryMinusF.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | using Syroot.BinaryData;
8 |
9 | namespace PDTools.Files.Models.VM.Instructions;
10 |
11 | public class VMUnaryMinusF : VMInstruction
12 | {
13 | public override VMInstructionOpcode Opcode => VMInstructionOpcode.FloatUnaryMinusOperator;
14 |
15 | public override void Read(BinaryStream bs, int commandsBaseOffset)
16 | {
17 |
18 | }
19 |
20 | public override void Write(BinaryStream bs)
21 | {
22 |
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/PDTools.Files/Models/VM/RegisterValue.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Models.VM
8 | {
9 | public struct RegisterVal
10 | {
11 | public int Value { get; set; }
12 |
13 | public RegisterVal(int value)
14 | {
15 | Value = value;
16 | }
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/PDTools.Files/Sound/PS2/MusicInf/Playlist.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PDTools.Files.Sound.PS2.MusicInf;
8 |
9 | public class Playlist
10 | {
11 | public string Name { get; set; }
12 | public List