reloaded.universal.fileemulationframework 2.1.0

Reloaded-II File Emulation Framework


🎈 Let's screw with binaries 🎈

A framework for creating virtual files at runtime.

About The Framework

The file emulation framework is a framework for intercepting Windows API calls related to the reading of files from disk; in order to trick games into loading files that don't really exist.

It builds on top of previous experiments with Reloaded, namely AFS Redirector, ONE Redirector and Persona 4 Golden PC modloader.

A User Friendly Example

Replacing files inside big archives without creating new ones.

In this case, the following files would replace the 7th, 8th, 9th and 10th file in the SH_VOICE_E.afs archive.

How It Works

By intercepting API calls used to open files, get their properties and read from them, we can essentially create files 'on the fly'; allowing us to perform various forms of post processing such as merging archives in a way that requires zero knowledge of the application running under the hood.

In practice this is extremely effective, the original AFS Redirector is known for being able to work with 10+ games, including those behind emulators.

Projects using this framework are referred to as 'emulators' hence the name File Emulation Framework; that name is derived from the original projects which simulated nonexistent archive files.

Performance Impact

This one varies with a lot of factors, such as number of emulators used, the emulators themselves, amount of data emulated, etc.

In most realistic use cases, the emulators usually have negligible performance impact that is completely invisible to the end user.

Usually first access to a file may be delayed for a small amount of time (<50ms) but this should usually be invisible to the end user. Penalty in speed of access to data of emulated files is negligible in practice.

The biggest penalty tends to be from reading multiple files instead of just one; as the benefits of purely sequential reads may no longer apply.

How to Contribute (Wiki)

Credits, Attributions

Showing the top 20 packages that depend on reloaded.universal.fileemulationframework.

Packages Downloads
reloaded.universal.fileemulationframework.awb
Simulates CRIWARE AWB (AFS2) files. Allows mods to add or replace existing files using files on disk.
12,689,491
reloaded.universal.fileemulationframework.spd
Simulating Atlus SPD files. Allows mods to add or replace individual sprites, even in the same texture file.
10,520,101
reloaded.universal.fileemulationframework.heroes.one
Simulates Sonic Heroes' ONE files. Allows mods to add or replace existing files using files on disk.
7,747,050
reloaded.universal.fileemulationframework.afs
Simulates CRIWARE AFS files. Allows mods to add or replace existing files using files on disk.
7,442,307
reloaded.universal.fileemulationframework.arc
Simulates Sega ARC files. Allows mods to add or replace existing files using files on disk.
7,374,467
reloaded.universal.fileemulationframework.pak
Simulates Atlus PAK files. Allows mods to add or replace existing files using files on disk.
4,782,703
reloaded.universal.fileemulationframework.bmd
Simulates Atlus BMD files. Allows mods to add or replace existing files using files on disk.
4,520,317
reloaded.universal.fileemulationframework.bf
Simulates Atlus BF files. Allows mods to add or replace existing files using files on disk.
4,319,613
UTOC.Stream.Emulator
Simulates Unreal Engine IO Store files (.utoc + .ucas). Allows mods to add or replace existing files using files on disk
2,326,569
reloaded.universal.fileemulationframework.bf
Simulates Atlus BF files. Allows mods to add or replace existing files using files on disk.
1,777,866
UTOC.Stream.Emulator
Simulates Unreal Engine IO Store files (.utoc + .ucas). Allows mods to add or replace existing files using files on disk
1,722,939
reloaded.universal.fileemulationframework.pak
Simulates Atlus PAK files. Allows mods to add or replace existing files using files on disk.
1,497,302
UTOC.Stream.Emulator
Simulates Unreal Engine IO Store files (.utoc + .ucas). Allows mods to add or replace existing files using files on disk
1,437,660
reloaded.universal.fileemulationframework.spd
Simulating Atlus SPD files. Allows mods to add or replace individual sprites, even in the same texture file.
1,376,837
reloaded.universal.fileemulationframework.awb
Simulates CRIWARE AWB (AFS2) files. Allows mods to add or replace existing files using files on disk.
1,272,936
UTOC.Stream.Emulator
Simulates Unreal Engine IO Store files (.utoc + .ucas). Allows mods to add or replace existing files using files on disk
1,027,036
reloaded.universal.fileemulationframework.bf
Simulates Atlus BF files. Allows mods to add or replace existing files using files on disk.
772,855
reloaded.universal.fileemulationframework.pak
Simulates Atlus PAK files. Allows mods to add or replace existing files using files on disk.
771,420
reloaded.universal.fileemulationframework.bmd
Simulates Atlus BMD files. Allows mods to add or replace existing files using files on disk.
766,324
Reloaded.Universal.Localisation.Framework
A framework that helps localise mods into multiple languages
671,073

# 2.1.0 - Added: `UnregisterVirtualFile` for unregistering files [untested]. # 2.0.0 - Improved: Performance by a few nanoseconds per read. - Added: `RegisterVirtualFile` API for creating files with custom path backed by custom data. # 1.1.3 - Changed: Use Thread Local buffer for Symlink Resolution to avoid potential stack overflow. # 1.1.0 - Fixed: Emulator will no longer incorrectly run for directories. - Added: Support for CloseHandle hook with custom ASM. # 1.0.0 Initial Mod Release

Version Downloads Last updated
2.3.0 1,152,354 3/23/2025
2.2.2 2,973,433 9/20/2024
2.2.1 1,083,157 6/21/2024
2.2.0 2,569,569 7/9/2023
2.1.3 298,497 3/1/2023
2.1.2 260,089 11/27/2022
2.1.1 28,691 11/21/2022
2.1.0 39,043 11/7/2022
2.0.0 10,695 11/4/2022
1.1.3 7,571 11/2/2022
1.1.2 58,919 9/30/2022
1.1.1 1,135 9/26/2022
1.1.0 1,330 9/22/2022
1.0.0 2,605 9/17/2022