segatools/common/platform
kyoubate-haruka d5bde32df7
ewf: implement EWF virtualization (#84)
(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>
2025-12-25 00:04:30 +01:00
..
amvideo.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
amvideo.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
clock.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
clock.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
config.c ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
config.h ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
dns.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
dns.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
epay.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
epay.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
ewf.c ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
ewf.h ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
hwmon.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
hwmon.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
hwreset.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
hwreset.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
meson.build ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
misc.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
misc.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
netenv.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
netenv.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
nusec.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
nusec.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
openssl.c Merge branch 'feature/openssl' into develop 2025-10-12 12:49:55 +02:00
openssl.h common: add OpenSSL Intel SHA ext hook 2025-10-05 11:01:13 +02:00
pcbid.c refactor all common parts and games 2025-04-17 19:40:40 +02:00
pcbid.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
platform.c ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
platform.h ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
security.c APMv3: add hook (#73) 2025-07-20 09:43:56 +00:00
security.h APMv3: add hook (#73) 2025-07-20 09:43:56 +00:00
system.c platform: fix dipsw settings not applying 2025-06-19 18:17:20 +02:00
system.h refactor all common parts and games 2025-04-17 19:40:40 +02:00
vfs.c ewf: implement EWF virtualization (#84) 2025-12-25 00:04:30 +01:00
vfs.h refactor all common parts and games 2025-04-17 19:40:40 +02:00