reloaded.universal.fileemulationframework 2.3.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 (1-3ms on existing emulators at time of writing) 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.
14,309,210
reloaded.universal.fileemulationframework.spd
Simulating Atlus SPD files. Allows mods to add or replace individual sprites, even in the same texture file.
10,520,125
reloaded.universal.fileemulationframework.heroes.one
Simulates Sonic Heroes' ONE files. Allows mods to add or replace existing files using files on disk.
8,606,704
reloaded.universal.fileemulationframework.afs
Simulates CRIWARE AFS files. Allows mods to add or replace existing files using files on disk.
8,271,568
reloaded.universal.fileemulationframework.arc
Simulates Sega ARC files. Allows mods to add or replace existing files using files on disk.
8,201,298
reloaded.universal.fileemulationframework.pak
Simulates Atlus PAK files. Allows mods to add or replace existing files using files on disk.
4,782,726
reloaded.universal.fileemulationframework.bmd
Simulates Atlus BMD files. Allows mods to add or replace existing files using files on disk.
4,520,340
reloaded.universal.fileemulationframework.bf
Simulates Atlus BF files. Allows mods to add or replace existing files using files on disk.
4,319,635
reloaded.universal.fileemulationframework.spd
Simulating Atlus SPD files. Allows mods to add or replace individual sprites, even in the same texture file.
3,044,609
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,594
UTOC.Stream.Emulator
Simulates Unreal Engine IO Store files (.utoc + .ucas). Allows mods to add or replace existing files using files on disk
1,861,878
reloaded.universal.fileemulationframework.bf
Simulates Atlus BF files. Allows mods to add or replace existing files using files on disk.
1,777,889
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,965
reloaded.universal.fileemulationframework.bf
Simulates Atlus BF files. Allows mods to add or replace existing files using files on disk.
1,648,953
reloaded.universal.fileemulationframework.pak
Simulates Atlus PAK files. Allows mods to add or replace existing files using files on disk.
1,645,014
reloaded.universal.fileemulationframework.bmd
Simulates Atlus BMD files. Allows mods to add or replace existing files using files on disk.
1,635,431
Reloaded.Universal.Localisation.Framework
A framework that helps localise mods into multiple languages
1,524,933
reloaded.universal.fileemulationframework.pak
Simulates Atlus PAK files. Allows mods to add or replace existing files using files on disk.
1,497,325
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,683
reloaded.universal.fileemulationframework.awb
Simulates CRIWARE AWB (AFS2) files. Allows mods to add or replace existing files using files on disk.
1,272,959

# 2.3.0 - Added support for emulating LastWriteTime of emulated files across re-opens. # 2.1.1 - Added: Source to start of various log commands. # 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 2,068,610 3/23/2025
2.2.2 2,973,458 9/20/2024
2.2.1 1,083,182 6/21/2024
2.2.0 2,569,592 7/9/2023
2.1.3 298,520 3/1/2023
2.1.2 260,116 11/27/2022
2.1.1 28,714 11/21/2022
2.1.0 39,066 11/7/2022
2.0.0 10,722 11/4/2022
1.1.3 7,595 11/2/2022
1.1.2 58,943 9/30/2022
1.1.1 1,158 9/26/2022
1.1.0 1,353 9/22/2022
1.0.0 2,631 9/17/2022