Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

62 Commits

Folders and files

Repository files navigation

Resident Evil - Classic Collection

Fan release preparation: local builds are not release-ready. See the audit, release gates, and changelog. Native inline remapping and hardware/gameplay validation remain open.

An unofficial, non-commercial launcher application for the Resident Evil Classic Bundle (RE1, RE2, RE3): a desktop front end that implements a designed user interface 1:1 and starts games you already own. It is an Electron + React application, driven by the design's own measured values rather than by hand-written draw calls, and it launches all three titles with optional RE-Enhance mod support, per-version regional variants, RE2's player scenarios, a CRT filter and an achievement system.

The main menu: three titles as cards, the Resident Evil logo above them

Latest release Platform: Windows Built with Electron and React Tests passing Not affiliated with Capcom

What it looks like

Every image below is a real frame of the running application, captured by its own end-to-end suite at the design's 1920x1080 canvas - not a mockup, and not a render of the design file.

A title, showing every released version and what is installed
A title: every released version, and what is installed on this machine
The launch panel with mode, scenario and Play
The launch panel: mode, scenario, Play
Settings, reached with F1 from any screen
Settings, reached with F1 from any screen
Achievements, with the launcher's own list and RetroAchievements beside it
Achievements: the launcher's own list, and RetroAchievements beside it
A running game, with the now-playing bar and Stop
A running game: the now-playing bar, and Stop

The screenshots are produced by tools/readme-shots.mjs, which picks them out of the test run, resizes them and refuses to publish a blank frame - so an image here cannot be a capture that happened before the app painted.

Not affiliated with Capcom, GOG or Valve — and not a game

This is an unofficial project, made by a fan of the games. It is not authorised, endorsed or sponsored by anyone, and it distributes no game code, executables, game data or mod payloads. It cannot run anything without your own legally purchased copy of the games, it modifies nothing unless you press the button, and it costs nothing.

Resident Evil, BIOHAZARD and the associated artwork are the property of Capcom Co., Ltd., and are used here to identify the games the launcher presents.

Read DISCLAIMER.md — it states plainly what the project is and is not, which assets belong to whom, and the takedown policy (short version: name the file, and it goes).

Built by Julio CACKO


What this is — and what it is not

It is software: a working desktop application that implements a designed user interface 1:1, with the design's own utility classes transcribed into components instead of re-implemented as immediate-mode draw calls. Everything the launcher does — install detection, validation, RE-Enhance injection and restore, config.ini patching, the save format, the boot-to-install-status rule — is behaviourally the same as the C++ launcher it replaces, ported one function at a time. What is new is how it is drawn, and how carefully that drawing is guarded: see docs/DESIGN-FIDELITY.md and pnpm check:fidelity.

It is not a game, an emulator, a loader, a crack, a mod, or a distribution of anything Capcom made. It has no engine, no assets pipeline of its own, and no way to obtain the games. It is a front end for copies that already exist on your disk, in the folder layout GOG and Steam install them in — and if it cannot find them, it tells you so and offers to be pointed at them.

docs/ARCHITECTURE.md is the full tour: the process split, the IPC contract, the catalog, the launch pipeline, the mod algorithm, the config and save formats and the input pipeline.


Features

  • Unified game selection — three cover cards on a fixed 1920x1080 stage, scaled to fit any window without reflowing a single measured value

  • Version picker — 8 rows across three titles: regional variants (US / JP), Director's Cut, RE2's two player scenarios as a per-row option, and the design's BIOHAZARD 1.5 row kept for documentation

  • RE-Enhance integration — enhanced/original mode per row, automatic file injection with a reversible backup, correct executable switching, and pre-launch config.ini patching so the RE-Enhance setup dialog never appears

  • Achievements — 373 definitions (RE1 117, RE2 135, RE3 121) with progress saved in the old launcher's own format, so existing unlocks carry over. Eight of them are launcher-observable and tick themselves when you launch the row they describe — see Achievements below for which and why there are only eight

  • In-game achievement overlay — the unlock toast is drawn inside the game, not in the launcher: a 32-bit plugin built from native/overlay/, loaded by the ASI loader RE-Enhance already installs, hooks the game's own present call and draws the card into the frame it is about to present. ENHANCED mode only (the loader ships with the mod), on by default and switchable in Settings, and it cannot detect an unlock — these are native Windows builds, so nothing reads the game's memory. Measurements, including the three that were wrong first: docs/ARCHITECTURE.md section 12

  • GOG and Steam auto-detection — GOG first (local GOG Games/, then the Windows registry, then the usual roots, with an explicit override), then Steam (its registry entry, every library in libraryfolders.vdf, and each app's own appmanifest), so a title installed from either store is found

  • Gamepad, keyboard and mouse — three input sources normalised into one set of six actions, with on-screen key hints per screen

  • CRT filter — scanlines, phosphor mask, vignette, grain and barrel curvature, all configurable

  • Game effects — unverified in-game CRT and fullscreen controls are hidden. Launcher-only CRT remains available.

  • Settings screen — CRT, volumes, what the window does when a game starts, where the games are (with the OS folder chooser and a re-scan) and a reset, reached from the launch panel's SETTINGS row

  • No native modules in the app — the Electron side is pure JavaScript, so there is nothing to rebuild per Electron version or per ABI. The one native artifact in the project is the overlay plugin above: our own 32-bit DLL, built from source by pnpm build:overlay, and the only reason pnpm build needs a C++ toolchain


Requirements

Development

Requirement Version Why
Node.js 20.19+ or 22.12+ (Vite 7's floor) Build tooling
pnpm 9+ The lockfile is pnpm-lock.yaml; pnpm-workspace.yaml is present
Windows 10 or 11, x64 The only packaged target (electron-builder.yml); the code paths for macOS/Linux exist but are untested

Install with pnpm install; nothing else has to be built or downloaded.

Runtime Dependencies (Not Included in Repository)

Nothing below is in this repository, and none of it is needed to build or run the launcher — only to actually start a game. The first two folders are gitignored.

What Where it goes How to obtain
The Resident Evil Classic Bundle, GOG or Steam GOG: GOG Games/ next to the launcher, or anywhere it can detect (including the store's own registry entry). Steam: install it normally and the launcher finds it. Either way you can point the launcher at the folder from Settings → Games Folder Purchase from GOG.com or Steam. Not distributed here, in any form
RE-Enhance mods (optional) reenhancemods/ next to the launcher From their respective authors (see Credits). Not distributed here, and not bundled in the released builds
The design's textures (optional; only needed to re-run pnpm assets:sync) assets/textures/ Included in the repository: the author's own Figma exports for the eight info-panel logos and the main-menu lockup
The source media the assets are converted from (optional; only needed to re-run pnpm assets:sync) media/, assets/videos/, assets/audio/ The author's own working folders; gitignored. The converted results are committed under src/renderer/src/assets/, so a clone builds and runs without them

One thing to be clear about, because the table above would otherwise read as a claim that nothing franchise-related ships here: the converted UI assets are committed — that is what makes a clone run out of the box — and they include franchise artwork, wordmarks, trailer footage and sound effects. They are not the project's to license. DISCLAIMER.md §5–§6 lists exactly which files those are and where each came from, and §7 says how to have any of them removed. What is not here is anything that constitutes a game: no executables, no game data, no engine code, no mod payloads.

GOG or Steam

Both are supported and GOG wins when you have both — it is where the RE-Enhance overlay and the config.ini the launcher patches belong. Steam is used when GOG has nothing for that row.

Steam's layout is very different: each localization is a complete copy of the game in its own folder, so a row's install root is the localization folder itself — 4249100_Biohazard\english for RE1 US and …\japanese for RE1 JP, which is why the two rows of one title can live in two places. The row then runs the executable Steam ships there, and RE2's Japanese copy names its executables LeonJ.exe / ClaireJ.exe rather than the LeonU.exe / ClaireU.exe a GOG install uses.

Two consequences worth knowing:

  • RE-Enhance is a GOG feature. The launcher injects nothing into a Steam install, so a Steam row always launches in ORIGINAL mode. If you have applied RE-Enhance to a Steam copy yourself, the language executable you would run is already the patched one.
  • Two rows have no Steam equivalent and stay GOG-only: DIRECTOR'S CUT (Steam's RE1 app is the 1996 original) and BIOHAZARD 1.5, which was never released.

Quick start

pnpm install        # dependencies
pnpm assets:sync    # build the bundled art from media/ and the design export
pnpm dev            # run the launcher (main + preload + renderer, with HMR)

pnpm assets:sync is not optional on a fresh clone: the art the renderer imports is generated into src/renderer/src/assets/, not committed.

Building

pnpm build          # typecheck -> overlay -> compile -> installer + portable exe (release/)
pnpm build:dir      # overlay -> compile -> unpacked build only (release/win-unpacked/)
pnpm build:overlay  # just the in-game overlay plugin + its hermetic test host
pnpm start          # preview a compiled build with electron-vite

pnpm build produces an NSIS installer and a portable executable, both x64. The build output lands in release/.

pnpm build needs a C++ toolchain (Visual Studio with the C++ workload, found through vswhere): it builds the in-game overlay plugin, which is a 32-bit DLL — the ASI loader inside these games is x86, so a 64-bit build would never be loaded and would never say why. tools/build-native.mjs asserts the machine type and that the artifact needs no VC redistributable. This is the one thing a contributor needs that pnpm dev and pnpm test do not: those work with no compiler at all, and the overlay's native tests skip with a visible reason until pnpm build:overlay has been run.

Where the game folders must live

Both folders belong beside the executable you double-click — the launcher's own directory, not resources/:

Resident Evil - Classic Collection.exe   (or the repo root, when running from source)
GOG Games/
├── Resident Evil/          RE1   -> ResidentEvil.exe, USA/, config.ini
├── Resident Evil 2/        RE2   -> LeonU.exe, ClaireU.exe, config.ini
└── Resident Evil 3/        RE3   -> ResidentEvil3.exe, config.ini
reenhancemods/              (optional)
├── RE-ENHANCE_RE1_v1.1_GOG/
├── RE-ENHANCE_RE2_v2.0.1_GOG/
└── RE-ENHANCE_RE3_v2.2_GOG/

The subfolder names are exact. Detection order is: an explicit install root override → GOG Games/<folder> beside the launcher → the GOG registry entry for the title → C:\GOG Games, C:\Program Files (x86)\GOG Games, D:\GOG Games. Every stage only wins if the directory actually exists, and a mod folder is only "available" if it exists and holds at least one entry.


Game catalog

Eight rows, three titles. The Release shown column is the date the design draws on the row; Originally released is the design's own originally released in … line, reproduced verbatim (docs/DESIGN-FIDELITY.md §7.3).

Resident Evil (GOG id 1580232252, folder Resident Evil)

# Row Region Release shown Originally released Retail executable Mod support
0 RESIDENT EVIL US July 24, 1998 30 March 1996 ResidentEvil.exe RE-Enhance v1.1 (Biohazard.exe)
1 BIO HAZARD JP July 24, 1998 22 March 1996 ResidentEvil.exe Requires RE-Enhance v1.1 (JapaneseEnable)
2 DIRECTOR'S CUT US July 24, 1998 September 25, 1997 ResidentEvil.exe RE-Enhance v1.1 (Biohazard.exe)

Resident Evil 2 (GOG id 1534123252, folder Resident Evil 2)

# Row Region Release shown Originally released Retail executable Mod support
0 LEON S. KENNEDY US September 29, 1998 21 January 1998 LeonU.exe / ClaireU.exe (scenario) RE-Enhance v2.0.1 (Resident Evil 2.exe)
1 BIOHAZARD 1.5 US September 29, 1998 never released — —
2 BIO HAZARD 2 JP September 29, 1998 29 January 1998 LeonU.exe / ClaireU.exe (scenario) RE-Enhance v2.0.1 (Resident Evil 2.exe)

Row 1 cannot be launched. BIOHAZARD 1.5 is the internal name of the Resident Evil 2 prototype that was cancelled in early 1997 and rebuilt from scratch. The design devotes a row to it — with its own artwork, description and the note "Planned Release IN March 1997 (Scrapped and remade.)" — so the row is kept and labelled CONCEPT — NEVER RELEASED. It has no executable, its LAUNCH row is disabled, and the launcher refuses it with not-launchable before it touches the disk.

Resident Evil 3 (GOG id 1266089300, folder Resident Evil 3)

# Row Region Release shown Originally released Retail executable Mod support
0 RESIDENT EVIL 3 US September 27, 1998 11 November 1999 ResidentEvil3.exe RE-Enhance v2.2 (BIOHAZARD(R) 3 PC.exe)
1 BIO HAZARD 3: LAST ESCAPE JP September 27, 1998 22 September 1999 ResidentEvil3.exe RE-Enhance v2.2 (BIOHAZARD(R) 3 PC.exe)

The two player scenarios

RE2's Leon and Claire are not separate rows: the row carries both, and the launch panel offers a SCENARIO option on RE2 only. In original mode it selects the executable (LeonU.exe / ClaireU.exe); in enhanced mode RE-Enhance boots its own loader and reads the choice from its own configuration, so the launcher passes the scenario along and starts Resident Evil 2.exe.

Enhanced mode

When a row is set to ENHANCED, the launcher injects the RE-Enhance tree over the retail install (backing up every file it is about to overwrite), then starts the mod's executable. Switching back to ORIGINAL restores the backups and deletes the files the mod added. Rows without a RE-Enhance folder on disk are locked to ORIGINAL, and RE1 JP is locked to ENHANCED because JapaneseEnable needs the RE-Enhance DLL.


Controls

Keyboard, mouse and gamepad all produce the same six actions, and each screen interprets them the way the design's helper bar promises.

Screen Left / Right Up / Down Confirm Back
Main menu move between the three cards — open the selected title quit the launcher
Game Version move between rows move between rows (wraps) open the launch panel back to the main menu
Launch panel ↑↓ move rows; ←→ change the highlighted value move rows start the game (on LAUNCH) / change the value close the panel
Gameplay — — — back to the version list
Install Status — — continue to the main menu —
Error dialog — — dismiss dismiss
Input Binding
Keyboard Arrow keys or WASD to navigate; Enter, Numpad Enter or E to confirm; Esc to go back
Mouse Hover a card or row to select it, click to activate it; the dialog dismisses on a click
Gamepad D-pad or left stick (0.5 deadzone) to navigate; A to confirm; B to go back

Repeats are throttled: 140 ms for a held key, 220 ms for the pad, and the two devices are briefly locked apart so one gesture cannot arrive twice.


Configuration

Settings live in a JSON file the launcher owns, not beside the executable (Program Files is not writable for a standard user):

%APPDATA%\Resident Evil - Classic Collection\config.json
Key Type Default Meaning
crtEnabled boolean false Draw the CRT overlay
scanlineIntensity number 0.3 Scanline darkening
curvature number 0.08 Barrel curvature (0 disables the warp)
crtVignette number 0.35 Edge darkening
crtGrain number 0.04 Noise amount
masterVolume number 1 Master audio level
sfxVolume number 1 UI cue level
musicVolume number 1 Reserved
lastSelectedTitle "re1" | "re2" | "re3" "re1" Which card the menu opens on
modes object {} Per-version enhanced / original; a missing entry uses the detected state
scenarios object {} Per-version leon / claire; a missing entry uses the row's default
gogPathOverride string "" Explicit GOG root; empty means auto-detect
keepLauncherVisible boolean true Keep the launcher window up while a game runs
inGameOverlay boolean true Draw the achievement toast inside the game's own frame

Writes are atomic (temp file + rename). A failed write preserves the previous settings and reports an error. Malformed values fall back to their defaults instead of breaking the launcher.

Upgrading from the old launcher: the first run reads the legacy config.ini beside the executable and migrates it once — [display] crt_enabled, scanline_intensity, curvature, vignette / noise_amount, [audio] master_volume, [game] last_selected and gog_path_override are all recognised in both their section-qualified and bare spellings, using the old tolerant boolean and numeric parsing. The full mapping is in docs/ARCHITECTURE.md §8. The old file is only ever read, never written.


Achievements

The unlock toast is drawn inside the game, not in the launcher: a 32-bit ASI plugin (built from native/overlay/, loaded by the ASI loader RE-Enhance already installs) hooks the game's own present call and draws the card into the frame it is about to present — the Steam overlay's route, with our code inside the game's process. It is on by default, can be switched off in Settings, and only ever happens in ENHANCED mode, because the loader that loads it ships with the mod. What it cannot do is detect an unlock: these are native Windows builds, so nothing reads the game's memory. docs/ ARCHITECTURE.md §12 has the measurements, including the ones that were wrong first.

373 definitions ship with the launcher: 117 for RE1, 135 for RE2 and 121 for RE3, in assets/achievements/achievements.json:

{
  "re1": [
    { "id": "re1_001", "name": "A Member of S.T.A.R.S.", "desc": "Complete the game as Jill on Standard", "icon": "" }
  ],
  "re2": [ "... 135 entries ..." ],
  "re3": [ "... 121 entries ..." ]
}

Eight of those the launcher can award by itself, and they are the only eight it ever will: an entry carries an observed condition naming what the launcher itself did — the title, the row, RE2's scenario, or ENHANCED mode — and it is ticked when that row launches. They read as "Play Resident Evil 3", "Play Resident Evil 2 as Claire", "Play Resident Evil in ENHANCED mode". Everything else in the file is an in-game condition ("Finish the game with an A rank") that nothing outside the game can verify: these are native Windows binaries, so the launcher does not read their memory, and marking one of those observable would put an unearned tick in your own progress file.

You can override or extend it without rebuilding, because the last readable file in this order wins:

  1. the bundled assets/achievements/achievements.json (baseline),
  2. <launcher folder>/assets/achievements/achievements.json (shipped loose by the installer),
  3. %APPDATA%\re-classic-collection\achievements.json (yours — this one wins).

An override that cannot be parsed, is not keyed by re1/re2/re3, or yields no achievements at all is ignored, so a truncated file can never wipe the list.

Progress is saved in the old launcher's own format, so existing unlocks carry over:

%APPDATA%\re-classic-collection\achievements.sav

# Resident Evil Classic Collection - achievement progress
re1_001=1|2025-03-04T18:22:09.114Z
re1_002=0|

One line per achievement, id=<flag>|<date>: 1 unlocked, 0 locked, and a locked row carries no date. Blank lines, #/; comments and malformed rows are skipped; a duplicate id keeps the last row. On first run the launcher adopts a legacy achievements.sav found beside the executable and writes it to the new location exactly once. Only ids the current definitions know about are applied, so a save from a different catalog cannot resurrect a row that no longer exists.


Media and the asset pipeline

pnpm assets:sync (tools/sync-design-assets.mjs) produces every image, video and sound the renderer imports. It is a build step, not a manual one, and it is the only thing that writes into src/renderer/src/assets/.

  • Sources. The eight info-panel logos and the main-menu badge come from assets/textures/ — the design's own texture exports, named the way the design tool names layers (Game=1, Type=Default.png, main-logo.png). Each logo has the exact aspect ratio of the box the design draws it in (Game=1, Type=Default is 409x109 against a 262.686x70 box) and is about 1.55x the media/ file of the same art, so the textures win. Heroes and region art come from media/, the art the previous launcher shipped, verified as the 1x twin of the export's @2x/@4x originals by dimension. The assets the export has and neither of those folders covers — the Unsplash backdrop, the three cover portraits, the two gameplay stills — come from .ref/designref/src/assets/.
  • The badge. It is cropped out of main-logo.png rather than re-typeset: the sync finds the lockup's lowest opaque band, trims the drop shadow the export flattened into the texture (the CSS one from the export is drawn instead) and reports the rectangle it used, which is also recorded in the manifest. See docs/DESIGN-FIDELITY.md §7.2.
  • Re-encoding. Everything becomes WebP (sharp) so the renderer stays small; heroes are resized to 1600 wide and region art to 1068 wide, and the logos are kept at native size because each one's pixel width already equals its design box. Videos are copied verbatim (re-encoding a trailer costs quality for no real saving), and so are the three WAV cues and the Actor font.
  • Records. src/renderer/src/assets/MANIFEST.json lists every output with its source path, size and — for the badge — the crop rectangle; design-map.json maps the export's asset-hash specifiers to converted files. Neither is hand-edited.
  • node tools/sync-design-assets.mjs --check reports what would be missing without writing anything.
  • node tools/inspect-image.mjs <file.png> reports what a texture actually is: its alpha bounding box and the bands of red / grey-white content inside it. That is how the badge's crop was established rather than guessed.

The input folders are media/, assets/textures/, .ref/designref/src/assets/ and assets/ (assets/videos, assets/audio, assets/fonts); the renderer never reads any of them at runtime — it reads the generated files under src/renderer/src/assets/.


Testing

pnpm test           # unit tests (vitest, Node environment)
pnpm test:watch     # the same, in watch mode
pnpm typecheck      # tsc over the main/preload, renderer and e2e projects
pnpm compile        # build main, preload and renderer into out/
pnpm test:e2e       # compile, then run the Playwright specs from tests/e2e/
pnpm check:fidelity # the design-drift guard: the live UI vs the design export
pnpm probe:overlay  # measure the in-game toast over a real game (see below)

Most of the overlay is tested without a game at all: native/testhost creates a real Direct3D device, the plugin draws into it, and src/main/overlay-link.test.ts reads the plugin's counters over its own pipe. Those tests skip, with a visible reason, until pnpm build:overlay has produced the plugin.

Measuring the toast over a real game

pnpm build:overlay
pwsh -File tools/probe-overlay.ps1 -Title RE3 -Dir "GOG Games\Resident Evil 3" `
  -Exe 'BIOHAZARD(R) 3 PC.exe'

It copies the plugin and its typeface into the install, launches the game the way the launcher does, links to the plugin over its pipe, sends one toast, and then reads the frame back off the game's device and counts the design's gold inside the toast's rectangle. That readback is the measurement that matters, and it is deliberate: a screen capture reads the screen, so it returns whatever window happens to be on top, and Windows will not let a background process bring a game to the foreground. The tool puts the install back afterwards — plugin, typeface and config.ini — including on its own failure paths. Add -Inspect to print every window the game's process owns instead of measuring.

The one spec that starts a game

pnpm test:e2e is hermetic: every spec replaces the main process's launch handler so that no test can start an executable, and points the app at a throwaway fixture. That leaves one path untested — the real one — so tests/e2e/live-launch.spec.ts covers it and is skipped unless you ask for it:

pnpm compile
$env:RE_LIVE_LAUNCH = '1'; npx playwright test tests/e2e/live-launch.spec.ts

It runs against your real application directory, so it probes your actual GOG Games/ install, injects the RE-Enhance overlay, starts the game, checks the launcher tracks it, and then quits the launcher to prove the game is killed rather than orphaned. The spec's profile is redirected to a temp directory so it is repeatable; the game and the mod injection are not, and are not meant to be. It force-kills anything it started on the way out, including a failure midway.

pnpm check:fidelity is the one to run after touching any component, any measured value or the catalog: it reads the design export and fails if a design class string, measured number, gradient stop or mask offset is no longer present in the renderer. It reads the design export, which is not in this repository: the exported components are the author's working material, so they are kept beside the working tree and gitignored. In a clone the guard says so and reports that nothing was verified rather than passing silently. It can run in --strict mode, which also fails when a value has moved to a different file. The three-step fidelity procedure — the guard, the Playwright geometry spec and the human side-by-side against the export — is written up in docs/DESIGN-FIDELITY.md §8.


Troubleshooting

Symptom Cause / fix
Game not detected The launcher boots to Install Status and shows where each title was expected. Put GOG Games/<exact folder name>/ beside the executable, or install through GOG so the registry entry exists, or set gogPathOverride in config.json to the folder that contains Resident Evil/
Install Status says PARTIAL The install root was found but a probe failed — the row lists the reason (Executable not found, Game data incomplete). Re-verify the GOG install files
The RE-Enhance setup dialog appears on launch [DLL] BootConfig=0 is what suppresses it, and the launcher writes it — twice, in fact: once while preparing the launch and again after the mod is injected, because the payload ships its own config.ini and used to overwrite the patch on every enhanced launch. Before that ordering was fixed there was nothing to check here; if the dialog still appears, check the install folder is writable
Wrong language / US-JP mix-up Language is driven by [DLL] JapaneseEnable, set from the row you launched. Launch the JP row for Japanese, the US row for English
Mods are not applied reenhancemods/ must be beside the executable with the exact folder names in Where the game folders must live. A row with no mod folder is locked to ORIGINAL mode
Enhanced mode starts the retail game The row's mod executable was not found after injection, so the launcher fell back to retail instead of failing the launch. Re-download the RE-Enhance release for that title
The wrong executable / a second launch refused One game at a time is deliberate: a second launch answers game-already-running instead of silently killing the running game. Close the game (or quit the launcher, which stops it) first
Files left behind after switching to ORIGINAL Restoring removes the mod's files and the .mod_backup/ folder. Empty directories the mod created are deliberately left in place; a stray .mod_backup/ without a manifest is cleaned up on the next injection
No sound Audio starts only after a real gesture (browser policy). Press a key or click once; then check sfxVolume and masterVolume in config.json
CRT filter looks wrong / too strong scanlineIntensity, curvature, crtVignette and crtGrain are all live settings. Set curvature to 0 to disable the warp filter
Art or videos are missing after a fresh clone pnpm assets:sync has not run. It generates everything under src/renderer/src/assets/
The window is smaller than 1920x1080 The launcher renders a fixed 1920x1080 canvas and scales it to fit, letterboxing the remainder. Nothing reflows; a 1920x1080 window simply shows it at 1:1
The game opens in a small window RE3 Enhanced offers four window sizes under its Display page. Game setting removes the override and restores its captured value. Fullscreen remains unverified. RE1/RE2 external resolution controls remain unverified; use native configuration where available.
Where are the logs? %APPDATA%\re-classic-collection\re-log.txt (also stdout in development). RE_LOG_LEVEL=debug turns on debug lines

Credits

  • Design & Development: Julio CACKO
  • RE-Enhance mods: Classic REbirth, Seamless HD Project, TeamX HD
  • Game art and trailers: CAPCOM CO., LTD. — reproduced so the launcher can present the games, and removed on request (see DISCLAIMER.md §7)
  • Actor typeface: released under the SIL Open Font License; see assets/fonts/OFL.txt
  • Engine reference for the original implementation: powerslave_ex (KEX engine)

Legal notice

The full statement is DISCLAIMER.md: what the project is and is not, whose content is whose (asset by asset), the trademark position, the takedown policy and how to request a removal, and an honest account of what a disclaimer can and cannot do. The summary below is the short version.

This is unofficial software. It is not affiliated with, endorsed by or sponsored by CAPCOM CO., LTD.

Resident Evil, BIOHAZARD and all related names, characters, artwork and trademarks are the property of CAPCOM CO., LTD. All game assets, logos, cover art and trailer footage belong to their respective owners.

Nothing in this repository constitutes a game. It ships no executables, no game data, no engine code, no mod payloads and nothing that defeats copy protection. The GOG Games/, reenhancemods/, media/, assets/videos/, assets/audio/ and development-only .ref/ folders are all gitignored and must be supplied by the user; DISCLAIMER.md §2 lists what is excluded and why.

What the repository does contain, stated without euphemism: the launcher's source code, the author's own user-interface work (layout, measurements, typography), the achievement definitions, and the generated UI assets under src/renderer/src/assets/ — which include franchise cover art, promotional art, wordmarks, trailer footage and sound effects. Those belong to Capcom Co., Ltd., not to this project, and no licence over them is claimed or granted here. DISCLAIMER.md §5–§6 identifies every one of them by path and source, and §7 is the takedown policy: name the file and it will be removed promptly.

The design export is not in the repository. The design was drawn in a separate design tool and its exported components are the author's working material, so they are kept beside the working tree (gitignored) rather than published here. That is why pnpm check:fidelity reports "not verified" on a fresh clone instead of passing quietly — see the Testing section.

A disclaimer does not make someone else's material lawful, and this one does not pretend to — see DISCLAIMER.md §8 for what it does and does not do. It is also not legal advice.

One typeface is bundled and it is redistributable: Actor (SIL OFL 1.1, licence at assets/fonts/OFL.txt), which sets the entire interface. The design's other face — the one it draws Classic Collection in — is Peter Jonca's "Resident Evil Classic Game Font" (CC BY-ND 3.0), which is not redistributed here because its download requires a DeviantArt login. No font is needed for it either way: the badge renders the designer's own cropped texture (assets/textures/main-logo.png), so the lettering is exact without shipping anyone else's file. If you use his font in your own work, credit Peter Jonca.

Fan release additions

Settings are grouped into Presentation, Audio, Controls, Accounts and Installation. Launcher keyboard bindings are configurable; Escape remains an always-available cancellation route. The selected game's Start menu includes Display, Controls and Achievements.

Enhanced configuration is preserved before copying/restoring mods, then reapplied after injection. RE3 display overrides are stored per installation in the user's native-settings profiles. Selecting Game setting restores the captured value on the next Enhanced launch. Original game files use the existing mod backup/restore path.

RetroAchievements credentials use Windows safeStorage. A legacy plaintext key is removed only after encryption and persistence verification. The renderer receives only raConfigured and the username; credential fields never read the saved key back. Removing the account uses a dedicated IPC operation. Reset Settings preserves credentials; Remove Saved Credential deletes them.

User-exported diagnostics include version, installation status and redacted operational logs. They exclude configuration files, API keys, usernames, saves and full paths. Nothing is uploaded automatically.

RE2 scenario selection controls the Original executable. Enhanced mode uses the mod's own character selection; its scenario row says SELECT IN GAME. No Leon/Claire milestone is inferred from an Enhanced-mode preference.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages