FFCCEOT-Recomp

Alpha

Final Fantasy Crystal ChroniclesEchoes of Time, on PC

A native PC port of the Nintendo DS game, made by statically recompiling it: the game's ARM code is translated to C and compiled on your PC, not emulated. Plug and play on Windows and Linux. You bring your own copy of the game; nothing of it is included.

See the releases page for the newest alpha.

The start screen: the title, with Select ROM, Settings and Quit buttons over a crystal backdrop.

How it works

  1. Download

    Unzip the Windows package to a folder you can write to (not Program Files), or make the Linux .AppImage executable and run it. Nothing else needs to be installed.

  2. Choose your ROM

    Pick your own dump of the game, or drop it on the window. It is checked, and the game is built on your PC with the compiler that comes in the package. That takes about a minute, once.

  3. Play

    Choose a preset in the Welcome window (Enhanced is the recommended way to play) and press Play.

You need your own copy of the game

This project contains no game code or data. The USA version is supported:

Dump
Final Fantasy Crystal Chronicles - Echoes of Time (USA) (En,Fr,Es).nds
SHA-1
1df23d5a3a655bdd587c360b581202931d0f66e1

Other regions are planned later. See how the project stays clear of game data.

Features

Single-screen play

The second screen is a touchable picture-in-picture. Or choose main + side, stacked, side by side, or a window of its own. Swap the screens at any time.

High resolution

Up to 16x the DS resolution (4K and beyond), matched to your window, with nearest, linear and sharp scaling filters. The exact DS software renderer is kept as the reference.

Smoother picture

Texture smoothing removes the blocky look of the DS textures and the jagged edges of sprites in 3D, and stable textures stop ground textures from warping.

Smooth motion

The game draws its 3D at 30 fps. Frame interpolation shows it at 60 fps or at your display's refresh rate (144 Hz and more), with frame pacing for G-Sync and FreeSync displays.

Widescreen

16:9, 16:10, 21:9 and 32:9, with the health and magic bars at the screen edges, and resizable.

Modern controls

Full gamepad play with no touch screen needed, analog movement, a radial on the right stick to pick the spell element, rebinding, and button names for Xbox, PlayStation and Nintendo controllers.

Online multiplayer

Restored through the community Wi-Fi Connection revival servers (Kaeru WFC, WiiLink WFC or your own), plus local wireless between instances on one PC (Windows).

Quality of life

Skip the company logos, fast loading and saving, and an in-game settings menu with a Final Fantasy look that works with mouse, keyboard and gamepad. Two presets, Original and Enhanced, to start from.

Problem reports

Report an issue collects the version, settings, a recent log and a screenshot, with personal paths removed, and opens a prefilled GitHub issue.

The settings menu

Press F1 in the game, or R + Start on a gamepad. It works with the mouse, the keyboard and a gamepad, and the game keeps running behind it so online play stays in sync.

The Video tab of the settings: layout, resolution, filters and frame rate choices.
Video Layouts, resolution, filters, widescreen and 3D frame rate.
The Input tab of the settings: stick dead zone, analog movement and the spell radial.
Input Rebinding, analog movement and the spell radial.
The Network tab of the settings: console name, Wi-Fi connection server and input buffer.
Network Pick the Wi-Fi Connection server for online play.

Screenshots show this project's own interface only; the game itself is not shown here.

Alpha notes

This is an early build. It boots and plays from the title screen into the field, with sound, saves and online play, but it has been played through the opening areas, not the whole game. Please report problems from the in-game menu or on the issue tracker.

Experimental

Features with a warning icon in the settings have had the least testing: widescreen and HUD placement, 3D at 60 fps and at your display's refresh rate, frame pacing, stable and smoothed textures, analog movement in multiplayer, and everything online.

Known gaps

  • No crash dialog on Linux yet (logs and problem reports work).
  • Local wireless between instances on one PC works on Windows only.
  • Only the USA version is supported.
  • Not played through the whole game.

Questions

Windows or my antivirus warns about the program. Is it safe?

The builds are unsigned, so Windows SmartScreen or an antivirus may warn about the program, and about the game module it builds on your PC the first time (choose More info, then Run anyway). The whole source is public, and the release lists checksums (SHA256SUMS.txt) so you can check your download.

Is it legal to build the game from my own ROM?

The project includes no game code, art or sound: only the tools that turn your copy of the game into a PC program on your PC. Nothing generated from the game is ever published. The details are in docs/LEGAL.md. This is not legal advice.

Does it run on Linux and the Steam Deck?

Yes: make the AppImage executable (chmod +x) and run it. It needs glibc 2.35 or newer. On the Steam Deck, run it from desktop mode. Local wireless between instances is not done on Linux yet.

Where are my saves and settings?

Windows: %APPDATA%\FFCCEOT-Recomp\EchoesOfTime. Linux: ~/.local/share/FFCCEOT-Recomp/EchoesOfTime. Put a file named portable.txt next to the program (next to the .AppImage on Linux) to keep them in a data folder beside it instead.

What are the controls?

Keyboard: arrow keys, X / Z / S / A for A / B / X / Y, Q / W for L / R, Enter and Right Shift for Start and Select, and the mouse as the stylus. A gamepad needs no touch screen. Every button can be rebound in the settings. F1 opens the menu, F2 swaps the screens and F11 toggles fullscreen. All the controls and hotkeys.

How do I report a problem?

Use Report an issue in the in-game menu: it collects the version, settings, a recent log and a screenshot, with personal paths removed, and opens a prefilled GitHub issue. Or open an issue yourself.

How does a recompiled game differ from an emulator?

The game's ARM code is translated to C ahead of time and compiled to native code, instead of being interpreted while you play. The rest of the DS (graphics, sound, wireless) runs on parts of the melonDS emulator. The architecture notes explain the details.