Yu-Gi-Oh! Forbidden Memories Recompiled

Yu-Gi-Oh! Forbidden Memories Recompiled is a native PC port of Yu-Gi-Oh! Forbidden Memories for Windows and Linux with up to 4x internal resolution and 3D monsters on the field. Confusingly, it has "Recompiled" in its name even though it is not a static recompilation.

README

Yu-Gi-Oh! Forbidden Memories Recompiled

Yu-Gi-Oh! Forbidden Memories (PS1, USA) rebuilt from its decompiled source as a native PC game for Windows and Linux, with a macOS ARM64 source build. Bring your own disc image; no game data is included but the text of the European translations (below).

Your field at 4x resolution with 3D Monsters

Features

  • Up to 4x internal resolution, widescreen and HD text
  • 3D Monsters: face-up monsters stand on the field as their battle models
  • Optional Forbidden Memories HD pack: redrawn cards, frames and portraits
  • Mods: framework for new cards past the original 722, fusions, textures, music, gameplay tables
  • FM Editor: make mods without writing JSON: cards, art, fusions, duelists, decks, packs, the title screen and more (guide)
  • Save slots, fusion helper, card drop rates, rebindable controls
  • Game > Language: the European releases' own English, French, German, Italian and Spanish

HD Free Duel portraits

Play

Download the latest build from Releases, extract it and run memories-pc.exe (Windows) or ./memories-pc (Linux). On first launch, pick your USA disc's .bin. The game can tell you when a newer release is out (Help > Check for updates at start turns it off; see Updates).

Bring your save from an emulator

Your save from the original game (an emulator's memory card, or a PS1 card copied to a PC) loads in the port. Copy the memory card file (.mcr, .mcd, .srm, .gme, .mcs, .psv, ...; DuckStation keeps its cards in its memcards folder, ePSXe in memcards) into the port's saves folder: Documents\My Games\YFM Re-Decomp\saves on Windows, ~/.local/share/YFM Re-Decomp/saves on Linux. Then pick LOAD on the title screen: the save is copied into an empty slot (the card file is renamed .imported) and you can load it. Emulator save states are not memory cards and cannot be imported; save in game first.

HD pack
  1. From the same release, download yfm-redecomp-hd-mod-<version>.zip.
  2. Close the game and extract the zip into the game folder, the one with memories-pc.exe or memories-pc. You should end up with mods/assets-hd beside the other mods.
  3. Start the game. The pack is on by default: press F10 for the menu bar and open Game > Mods to check it, or to turn it or any of its parts off.
  4. For the best look, pick Video > Resolution > Internal 4x and turn on Video > HD text.

From source: put the .bin in game/ and run play.bat or ./play.sh. The first run builds everything (Linux needs gcc and python3). See PC build.

On Apple Silicon, ./play.sh builds and runs the macOS target using Python 3, Xcode command-line tools, and verified dependencies installed under tmp/. See macOS build and the ARM64 runtime guide. Native save states use F5/F7 and have build and platform compatibility limits; see save-state compatibility. Code mods need a macOS ARM64 build; existing i386 code-mod binaries cannot be loaded. See macOS code mods.

Languages: languages/*.txt is the text of the five European releases, read off the PAL discs by the port itself. With the discs in game/pal, python3 tools/pc/export_languages.py writes them again, and --check compares them (Translations, "The official languages"). They are the only game data in the repository: text, no pictures.

Decompilation

Every game function matches the original executable byte for byte:

make tools   # pinned toolchain
make match   # rebuild SLUS_014.11 exactly (see notes/setup.md)
Progress
MetricCurrent
Game C-decompilation targets matched1,134 / 1,134 (100.00%)
Game C-decompilation target bytes matched356,080 (0x56EF0) / 356,080 (0x56EF0) (100.00%)
Remaining game C-decompilation targets0 functions, 0 (0x0)
Evidence-backed handwritten game assembly61 functions, 40,116 (0x9CB4)
Total game-owned functions1,195
Preserved Psy-Q CRT/SDK assembly591 functions, 117,348 (0x1CA64)
Total discovered functions1,786
Embedded/unassigned resident text1,780 (0x6F4)

Runtime overlay modules:

ModuleMatching C functionsMatching C bytes
free_duel9 / 9 (100.00%)4,140 (0x102C) / 4,140 (0x102C) (100.00%)
main_menu31 / 31 (100.00%)17,724 (0x453C) / 17,724 (0x453C) (100.00%)
overworld_after_coup15 / 15 (100.00%)6,184 (0x1828) / 6,184 (0x1828) (100.00%)
overworld_before_coup15 / 15 (100.00%)6,184 (0x1828) / 6,184 (0x1828) (100.00%)
password27 / 27 (100.00%)10,884 (0x2A84) / 10,884 (0x2A84) (100.00%)

Generated from config/slus_01411/functions.csv and config/slus_01411/overlays/*_functions.csv by tools/project/progress.py.

Docs

Modding · FM Editor · More cards · Fusion helper · Card drops · Card packs · Translations · Updates · Setup · Build · Releases

Community

Join the Discord to follow development, ask questions and report issues.

License

The PC port (src/pc/, tools/pc/, tests/pc/, mods/, examples/ and the build and play scripts) is MIT: keep the copyright notice and please link back here. The decompilation builds on memories-decomp by its authors. Yu-Gi-Oh! and Forbidden Memories belong to Konami.