A native Windows PC port of Fire Emblem: Fortune's Weave (Nintendo Switch 2), made by static recompilation. The game's code is translated to C++ and compiled into a regular Windows program, which runs on a small runtime that stands in for the console's system software and draws with Vulkan. It is not an emulator.
Important
No game files are included or downloadable here. This project contains only its own tools and runtime. To play, you need your own legally dumped copy of the game; everything that reads the game happens on your PC. See LEGAL.md.
Not affiliated with or endorsed by Nintendo or Intelligent Systems.
- Runs natively on Windows, with no emulator in between
- 60 or 120 FPS modes, any output resolution, render scale and a temporal upscaler
- Ultrawide (21:9, 32:9 or any wider shape): a wider view with the menus and HUD kept at 16:9 in the centre
- Windowed, borderless or fullscreen
- Keyboard or any controller, with matching button prompts
- An in-game settings overlay (F1)
- A launcher that sets everything up from your dump, with nothing else to install
- Windows 10 or 11, 64-bit
- A GPU with Vulkan 1.3 and an up-to-date driver
- 16 GB of RAM and about 30 GB of free disk space
- Your own decrypted dump of the game at update 131072, in one of these forms:
- a folder with
exefs\andromfs\ - a dump folder with
base\andupdates\<version>\ - a
.nuppackage
- a folder with
- Download
fefw-recomp-<version>-win64.zipfrom the Releases page and extract it to its own folder. - Run
fefw-launcher.exe. - On Setup, choose your dump folder (or .nup file) and press Set up. The launcher checks your files, builds the game on your PC and prepares the shaders. The first setup takes a while; you can Pause it and continue later.
- Press Play.
Your saves are in the save\ folder next to the launcher.
The launcher's Settings page covers resolution, frame rate, upscaling, window mode, sound and controls. Press F1 in game for the overlay. Every option is described in runtime/docs/CONFIG.md.
Settings > Language (or F1 > Game) picks the language of the game's text and voices: Japanese, English (US or UK), French, German, Italian, Spanish, Korean and Chinese (Simplified or Traditional). Automatic, the default, follows your Windows display language and uses English when the game has no translation for it. The change applies the next time the game starts.
NVIDIA's files cannot be shipped here, so DLSS stays off until you add them. Take them from NVIDIA's
Streamline SDK (v2.x, the bin/x64 folder of the release, not the development one) and
put these four files in a folder named upscalers\streamline next to fefw-launcher.exe:
sl.interposer.dll sl.common.dll sl.dlss.dll nvngx_dlss.dll
Then choose DLSS (or Automatic, which picks DLSS when the files and an RTX GPU are there) as the Upscaler in Settings, and
restart the game. fefw.log says Streamline ... started and DLSS (Streamline) when it works. The folder can be somewhere else:
set it under Settings > Picture > DLSS (Streamline) folder.
Any controller works, and so does the keyboard, with no setup. The button prompts in the game follow the one you used last: press a key and they show keys, touch the controller and they show its buttons. The keyboard drives the Switch buttons the game knows:
| Keys | Switch | |
|---|---|---|
| W A S D | Left stick | Move |
| Arrow keys, I J K L | Right stick | Camera |
| Enter, Space | A | Confirm |
| Esc, Backspace | B | Back |
| R | X | |
| F | Y | |
| Q / E | L / R | E: dash in town |
| Z / C | ZL / ZR | C: map in town |
| Tab | + | Menu |
| M | - | |
| 1 2 3 4, or numpad 8 2 4 6 | D-pad up, down, left, right | |
| V / B | Left / right stick click |
The movement keys push the stick all the way. F1 (settings), F2 (frame rate counter) and Alt+Enter (full screen) are the runtime's own keys. F1 > Controls lists the keys as they are now.
To change a key, close the game and edit [bindings.all] in controls.ini in the run folder (the game creates it on its first
start). Each line is key = action:
[bindings.all]
W = move_forward
Return = btn_a
G = btn_x
X = none
Left side: a key name (Return, Space, Left Shift, Up, Keypad 8 ...). Right side: move_*, look_*, dpad_*, btn_a,
btn_b, btn_x, btn_y, btn_l, btn_r, btn_zl, btn_zr, btn_plus, btn_minus, btn_lstick, btn_rstick, or none to
switch a key off. An older controls.ini gets the keys above added at the next start (only keys you have not bound yourself; the
old file is kept as controls.ini.bak). To go back to the default keys, delete the [bindings.*] sections. Controller options (stick dead zones,
button mapping, prompts) are under Settings and F1 > Controls.
DLC is used when you dump it from your own copy, like the game. Put each add-on in dlc\<title id>\romfs of your dump folder (next
to exefs\ and romfs\, or next to base\ and updates\). A .nup with add-ons is unpacked that way on its own. The Play
page lists the DLC it found.
RomFS mods go in the mods\ folder next to the launcher (Play > Open mods folder), in the layout emulators use:
mods\<mod name>\romfs\.... Files in a mod replace the game's files at the same path. If two mods change the same file, the mod
whose name sorts last wins, so you can name them 01-... and 02-.... Rename a mod to start with - or _ to turn it off. Code
mods (exefs .ips / .pchtxt patches) do not work, because the game code is compiled ahead of time.
Extract the new zip to a new folder, copy your save\ folder (and mods\, if you use mods) into it, and run Set up again.
- "These game files are a different version": only update 131072 is supported. Check that you dumped the update, not only the base game.
- Setup stopped or failed: press Set up again to continue where it stopped. Open full log on the Setup page shows what went wrong.
- The game closes or freezes: look at
fefw.login the launcher's folder, and update your GPU driver.
Open an issue with fefw.log, your GPU, driver and Windows version, and the release you used. Please do not attach
game files or anything made from them.
See docs/BUILDING.md. Contributions are welcome.
This project stands on the work of others. Thank you.
- nxrecomp by drakolordx7: the recompiler this is built on.
- pokopia-recomp (drakolordx7) and featureJosh/pokopia-recomp (featureJosh): the runtime, tools and launcher this project started from (GPL-3.0).
- drakolordx7/switch2-recomp: the launcher design this launcher follows.
- nxnative-penis6 by seedds (MIT): the movie decoder front end, its dav1d copy and
several hardware facts (notices in
runtime/THIRD_PARTY_NOTICES.md). - Kompas9's Switch-Game-Patches (MIT): the Fortune's Weave ultrawide patch, whose sites and
findings
[fefw] ultrawidere-implements as runtime hooks. - Ryujinx / Ryubing (MIT): the shader translator and tiling code; Mesa NAK (MIT).
- SuperMarioWonderRecomp (MIT); smo-recomp, ScarletNX and ssbu-recomp (GPL-3.0); yuzu and Eden (GPL); libnx (ISC); LLVM libc++abi (Apache-2.0 with LLVM exceptions).
- Hookshot (GPL-3.0) and SkyboundTotk: the RomFS mod folder layout and rules followed here, so mods work the same in both.
- zbic by Yannik Marchand (GPLv2; installed by pip at setup, not included here): ZBIC decompression.
- dav1d (BSD-2-Clause), libvpx (BSD-3-Clause), Zstandard (BSD), SDL3 (zlib), volk, VulkanMemoryAllocator, Dear ImGui (MIT), Vulkan-Headers (Apache-2.0 or MIT).
- astc-encoder (Apache-2.0), bc7enc_rdo (MIT or public domain), ISPC (BSD-3-Clause).
- AMD FidelityFX SDK headers and FSR (MIT), NVIDIA Image Scaling (MIT), NVIDIA Streamline headers (MIT). No NVIDIA or AMD binaries are included; DLSS is not used or distributed.
- Sascha Willems' Vulkan samples (MIT): the stand-in shader test corpus.
- Kenney input prompts (CC0), DejaVu fonts, Tauri, Lucide icons (ISC).
Licence texts: runtime/THIRD_PARTY_NOTICES.md, recomp/THIRD_PARTY.md, tools/*/licenses/, tools/textures/THIRD_PARTY.md and the
licence files inside runtime/third_party/. All of these licences are compatible with the GPL-3.0 this project is released under.
GPL-3.0 (LICENSE). Third-party code keeps its own licence.