mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-12-23 06:58:03 +00:00
* added psf file format * clang format fix * crypto functions for pkg decryption * pkg decryption * initial add of qt gui , not yet usable * renamed ini for qt gui settings into shadps4qt.ini * file detection and loader support * option to build QT qui * clang format fix * fixed reuse * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/loader.h Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/loader.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * uppercase fix * clang format fix * small fixes * let's try windows qt build ci * some more fixes for ci * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/pkg.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update .github/workflows/windows-qt.yml Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/loader.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * Update src/core/file_format/psf.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * loader namespace * Update src/core/loader.cpp Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> * constexpr magic * linux qt ci by qurious * fix for linux qt * Make script executable * ci fix? --------- Co-authored-by: raziel1000 <ckraziel@gmail.com> Co-authored-by: GPUCode <47210458+GPUCode@users.noreply.github.com> Co-authored-by: GPUCode <geoster3d@gmail.com>
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include <string>
|
|
#include <unordered_map>
|
|
#include <vector>
|
|
#include "common/endian.h"
|
|
|
|
struct PSFHeader {
|
|
u32_be magic;
|
|
u32_le version;
|
|
u32_le key_table_offset;
|
|
u32_le data_table_offset;
|
|
u32_le index_table_entries;
|
|
};
|
|
|
|
struct PSFEntry {
|
|
enum Fmt : u16 {
|
|
TextRaw = 0x0400, // String in UTF-8 format and not NULL terminated
|
|
TextNormal = 0x0402, // String in UTF-8 format and NULL terminated
|
|
Integer = 0x0404, // Unsigned 32-bit integer
|
|
};
|
|
|
|
u16_le key_offset;
|
|
u16_be param_fmt;
|
|
u32_le param_len;
|
|
u32_le param_max_len;
|
|
u32_le data_offset;
|
|
};
|
|
|
|
class PSF {
|
|
public:
|
|
PSF();
|
|
~PSF();
|
|
|
|
bool open(const std::string& filepath);
|
|
|
|
std::string GetString(const std::string& key);
|
|
u32 GetInteger(const std::string& key);
|
|
|
|
std::unordered_map<std::string, std::string> map_strings;
|
|
std::unordered_map<std::string, u32> map_integers;
|
|
|
|
private:
|
|
std::vector<u8> psf;
|
|
};
|