mirror of
https://gitea.tendokyu.moe/Hay1tsme/segatools.git
synced 2026-05-06 21:38:58 -05:00
(Yeah, I know the OS may cache disk reads, but that wasn't the concern) The ALLS series of cabs runs EWF to prevent anything from being written to C:\. This PR adds another layer to iohook to redirect specific open/read/write/close operations to a virtual file table to prevent disk activity, and thus simulate the presence of EWF. This was mainly aimed at ALPB's billing files. Seriously, look at this - especially the timestamps, Sega wtf are you doing. This does not affect other path hooks. It's turned off by default and will throw an error if the current executable resides on C:\. Tested with FGO and APMv3. ![22bf755754[1].png](/attachments/31771aee-2e4d-4e4f-85e3-c5eec63c6f78) Reviewed-on: https://gitea.tendokyu.moe/TeamTofuShop/segatools/pulls/84 Co-authored-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com> Co-committed-by: kyoubate-haruka <46010460+kyoubate-haruka@users.noreply.github.com>
42 lines
1.6 KiB
C
42 lines
1.6 KiB
C
#pragma once
|
|
|
|
#include <windows.h>
|
|
|
|
#include <stdbool.h>
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include "platform/amvideo.h"
|
|
#include "platform/clock.h"
|
|
#include "platform/dns.h"
|
|
#include "platform/epay.h"
|
|
#include "platform/hwmon.h"
|
|
#include "platform/hwreset.h"
|
|
#include "platform/misc.h"
|
|
#include "platform/netenv.h"
|
|
#include "platform/nusec.h"
|
|
#include "platform/pcbid.h"
|
|
#include "platform/platform.h"
|
|
#include "platform/vfs.h"
|
|
#include "platform/system.h"
|
|
#include "platform/openssl.h"
|
|
|
|
void platform_config_load(
|
|
struct platform_config *cfg,
|
|
const wchar_t *filename);
|
|
|
|
void amvideo_config_load(struct amvideo_config *cfg, const wchar_t *filename);
|
|
void clock_config_load(struct clock_config *cfg, const wchar_t *filename);
|
|
void dns_config_load(struct dns_config *cfg, const wchar_t *filename);
|
|
void epay_config_load(struct epay_config *cfg, const wchar_t *filename);
|
|
void hwmon_config_load(struct hwmon_config *cfg, const wchar_t *filename);
|
|
void hwreset_config_load(struct hwreset_config *cfg, const wchar_t *filename);
|
|
void misc_config_load(struct misc_config *cfg, const wchar_t *filename);
|
|
void netenv_config_load(struct netenv_config *cfg, const wchar_t *filename);
|
|
void nusec_config_load(struct nusec_config *cfg, const wchar_t *filename);
|
|
void pcbid_config_load(struct pcbid_config *cfg, const wchar_t *filename);
|
|
void vfs_config_load(struct vfs_config *cfg, const wchar_t *filename);
|
|
void system_config_load(struct system_config *cfg, const wchar_t *filename);
|
|
void openssl_config_load(struct openssl_config *cfg, const wchar_t *filename);
|
|
void ewf_config_load(struct ewf_config *cfg, const wchar_t *filename);
|