Repository navigation
A faithful, moddable port of Oracle of Ages and Oracle of Seasons for PC, macOS and Android. Your own ROM runs in an emulator core: SameBoy, unmodified, the accurate reference, or mGBA's Game Boy core, lighter, with one patch (its boot ROM), for small devices; Fast (mGBA) plays by default on Android, Accurate (SameBoy) elsewhere, and Core, in Display's Advanced page, changes it. Around it, a native host observes the game and presents it: the original image, or a widescreen view with the neighbouring rooms, at three levels, Near, Medium and Far, in the shape of the screen, 16:9 or 4:3; Display's Quality sets the view and the core for the device in one choice, from Low to Max. Gameplay options, Lua mods and fan games from their BPS patch come with it.
The game needs your own ROM of Oracle of Ages or Oracle of Seasons (US), and a fan game its BPS patch; none is included.
Installing
- Windows (
the-oracles-project-1.3.0-windows.zip, 64-bit): unzip the folder and runthe-oracles-project.exe. The executable is not signed, so SmartScreen may warn the first time: More info, then Run anyway. - macOS (
the-oracles-project-1.3.0-macos.zip, one application for Apple Silicon and Intel, macOS 11 or later): unzip and move The Oracles Project to Applications. The application is not notarised: open it the first time by right-clicking it and choosing Open, or runxattr -dr com.apple.quarantine "The Oracles Project.app". - Linux (
the-oracles-project-1.3.0-linux-x86_64.AppImage): make the file executable (chmod +x the-oracles-project-1.3.0-linux-x86_64.AppImage, or in the file's properties) and run it; SDL 3 comes with it. If the AppImage does not start, use the.tar.gz, or run the AppImage with--appimage-extract-and-run: a system without FUSE (some containers and minimal installs) cannot mount it. - Linux, archive (
the-oracles-project-1.3.0-linux-x86_64.tar.gz): extract the folder and run./the-oracles-project; SDL 3 comes with it. Thethe-oracles-project.desktopfile inside is optional: set its two paths, then copy it to~/.local/share/applications/. - Linux ARM64 (
the-oracles-project-1.3.0-linux-arm64.AppImageandthe-oracles-project-1.3.0-linux-arm64.tar.gz; Raspberry Pi 5, Asahi Linux...): experimental, not yet tried on real hardware; feedback welcome. They install as the two files above. - Android (
the-oracles-project-1.3.0-android.apk, Android 10 or later): install the APK, allowing its installation from your browser or file manager when Android asks.
SHA256SUMS.txt holds the SHA-256 of each file.
What's new in 1.3.0
New
- Compact text. Display > Text > Text: Classic, the game's letters each in a cell of its own, as before, or Compact, where each letter takes its own width, so more words fit on a line and a dialogue takes about a fifth fewer boxes. The texts are laid out again for it and still appear letter by letter at the game's pace, with its sounds. It works in Enhanced, in Ages and Seasons in every language, and in the English of the three fan games.
- Wide text box. Display > Text > Text box: Standard, the game's, or Wide, a longer box drawn by the port, whose lines hold half as much again: with the compact text, a dialogue takes about a third fewer boxes. The game still pages, paces and asks its questions as it does. It works in Enhanced, in Ages and Seasons.
- Text size. Display > Text > Text size: Normal, Large (half as big again) or Very large (twice as big), the text box drawn larger where the view has room for it, for small screens and reading from a distance. It stays sharp, in whole screen pixels, and changes at once from the pause too. It works in Enhanced, in Ages and Seasons.
- Instant text. Display > Text > Text speed: Classic, letter by letter at the speed chosen on the file screen, as before, or Instant, where each line of a dialogue appears whole and every page comes much faster; A still turns the page. Characters' voices and the game's own pauses are kept, and your save's text speed is untouched. It works in Faithful and Enhanced, in Ages, Seasons and the three fan games, and from the pause too.
- Display > Text. The four settings have a page of their own, opened from Display's Text row, with a preview of the box as it will show in your view, at the size it will take there. A savestate loads only with the Text and the Text box it was taken with.
- Living neighbouring rooms. In Enhanced, the people and things in the rooms around Link now move as the game moves them, instead of standing still in the pose the view captured. What the game itself keeps still stays still. The Low quality keeps them still, as before.
- Wide layout for the status bar. Display > HUD: Wide layout, a third choice beside Full width (still the default) and Original. The game's own status bar is split to the corners of the view: the hearts and the rupees on the left, the item hotkeys then B and A on the right, on the bar's colour. The hearts take a single row where the view is wide enough (Medium and Far). It follows the dungeons' keys, Subrosia's ore and fifteen or sixteen hearts, works in the five games and changes at once from the pause too.
- Camera. Display > Advanced > Camera: Smooth, the camera moving by fractions of a pixel so that diagonal walks and stairs glide, or Pixel, whole pixels as the game does. It changes at once from the pause too. On Android, Smooth is now the default where the game is shown at three times its size or more; it also works with a Screen margin and the touch controls, and Link no longer shifts slightly when swimming from one room to the next.
- Settings while you play. From the pause, Swimming, Item hotkeys, Window and Vsync now apply to the game you are playing, without going back to the home screen. What a running game cannot change (the text, the text box, the core) is greyed in the pause, which says to change it from the home screen.
- Import a save. Cartridge > Save > Import save… brings in a save from another emulator, another device or the European ROM, on every platform and for the five games. It asks before replacing anything, keeps the save it replaces, and its savestate, in a Backups folder beside it, and refuses a file that is not a save of Oracle of Ages or Seasons. A save played in German, Italian or Spanish on the European ROM gets its language set to English, which the US game needs to show its texts right; the rest of your game is kept.
- Zipped ROMs. Choose ROM…, Choose patch… and the European ROM now take a
.ziptoo, and so do a file dropped on the window and the command line: the ROM or the patch inside is read, nothing is unpacked to disk, and the save goes beside the zip, under its name; a zip of a ROM and its patch serves for both. A zip holding several ROMs, or compressed other than the usual way, and a 7z or RAR archive are refused with the reason. - Export a save on Android. Cartridge > Save > Export save… puts a copy of your save where you choose (Downloads, an SD card), to play it elsewhere, without a cable. On a computer, Open folder shows it as before. A save made here also works with the European ROM in other emulators, beside that ROM under the same name; Cartridge says so under the save.
- Display > Picture. How the game's picture shows now has a page of its own, opened from Display's Picture row, which sums up its settings beside it: Scaling and Screen margin, moved from Advanced, Color correction, moved from Display's first page, and two settings that only
settings.txtheld until now, on every platform, Android included. Menus & scenes: View or Large, the menus, the map, the cutscenes and the file screen at the view's scale, or alone at their own largest scale, easier to read on a small screen (Large is Android's default); it changes at once from the pause too. Far size, on 1280x960 and 1240x1080 screens only, where it changes something: Fitted, Far at a size made for the screen, or Fixed, at its usual size. Display > Advanced keeps Core, Continuous transitions, Vsync, Neighbor workers and Camera. - About. The version number at the bottom left of the home screen now opens About, with the version and Update check: On, or Off for no network request at all, which also hides a newer version's notice. It works on every platform, Android included, where the update check could not be turned off until now.
- Linux: an AppImage. Linux now has an AppImage, one file to make executable and run, with its icon and menu entry for the tools that install AppImages. The
.tar.gzstays, for systems where the AppImage does not start. Both also come for Linux ARM64 (Raspberry Pi 5, Asahi Linux...), experimental: not yet tried on real hardware, feedback welcome.
Improved
- Smoother diagonal transitions. With Continuous transitions, crossing a room edge diagonally, walking or swimming, stalls much less: Link now carries on across while the next room loads, instead of being held back. A slight catch can still be felt as the scroll ends. It works in Ages and Seasons.
- The hotbar through dialogues. In Enhanced, the hotbar of the Item hotkeys now stays with the status bar through dialogues, scrolls and fades, fading and flashing with it, instead of hiding at every text box. It is hidden in cutscenes.
Fixed
- In Ages' underwater rooms, the underwater dungeon included, and under the sea, the water's ripple no longer shakes the rooms when the camera moves, and it keeps rippling while the screen scrolls to the next room. An interior under the sea no longer sways from side to side with the waves, and with the Smooth camera the scenery now glides around Link as he swims diagonally on the sea floor, as it does on foot, instead of turning at every step.
- In Enhanced, a house no longer moves as Link walks out of it.
- At the end of a fade, the rooms around no longer flash a wrong tint for a moment.
- In the drawn-back view (Medium and Far), the farthest rooms stay black much less often, and fill in much faster, when Link walks into ground he has not been to yet, or after a savestate is loaded beside a room that starts a scene.
- With Menus & scenes on Large (the default on Android), a cutscene that ends on a blank screen before the next room now keeps its size through the blank, instead of shrinking for a moment.
- A newer version found while a game was running now shows as soon as you return to the home screen, instead of at the next launch.
- On a device without a web browser (some Android consoles), opening a newer version's page now shows its address instead of doing nothing.
settings.txtkeeps the settings this version does not know, which a newer version or a test build wrote there, instead of losing them at each launch. A setting it knows, written with a value it does not know, goes back to its default.- A setting written by hand with spaces or capitals in
settings.txt, such asupdate_check = OFF, now applies, instead of being ignored and replaced by the default.
Notes
- Defaults. Nothing changes until you change it: Text Classic, Text box Standard, Text size Normal and Text speed Classic play the game's own text, the status bar stays Full width, and Menus & scenes stays Large on Android and View on computers. On Android, the camera now moves by fractions of a pixel (Smooth) where the game is shown at three times its size or more, on most phones and on the larger handhelds' screens; Display > Advanced > Camera chooses.
- Settings that moved. Scaling and Screen margin moved from Display's Advanced page, and Color correction from Display's first page, to Display > Picture.
- Saves, settings and savestates. Installed over 1.2.0, 1.3.0 keeps your saves and
settings.txt, on Android too. Savestates made with 1.2.0 load and resume where they were taken, as long as Display > Text keeps the Classic text and the Standard box; one taken with the Compact text or the Wide box loads only with the same.
Android: coming from 1.1.0? Bring your saves over
If you already play 1.2.0 on Android, install 1.3.0 over it: it keeps your ROMs, saves and settings, and nothing below concerns you.
Since 1.2.0, the Android application has a new identifier, org.theoraclesproject, so Android sees it as a new application: it installs beside 1.1.0 instead of over it, and starts without your ROMs, saves and settings.
Keep 1.1.0 installed until your games load with their saves in 1.3.0: uninstalling it deletes its ROMs, saves and savestates.
To bring them over (this takes a USB cable and a computer: since Android 11, most file managers cannot open Android/data):
- Install 1.3.0 and open it once, so that Android makes its folder, then close it.
- On the computer, copy the files of
Android/data/io.github.thibautbus.theoraclesproject/files/roms(your ROMs, their saves and savestates) and ofAndroid/data/io.github.thibautbus.theoraclesproject/files/patches(the fan games' patches and their saves) into folders of the same names,romsandpatches, underAndroid/data/org.theoraclesproject/files/. - Open 1.3.0 and, in each game's Cartridge, choose the ROM again (and each fan game's patch), the same file you chose in 1.1.0: the launcher finds its copy already in its folder and plays it with its save. If you no longer have that file, first copy it over USB from the new
roms(orpatches) folder toDownload, keeping its exact name, and choose it there. Settings do not carry over: set Display and Controls again. - Once your games load with their saves in 1.3.0, you can uninstall 1.1.0.
A single save can also come over without moving the folders: copy its .sav from the 1.1.0 folder to Download, then, in the game's Cartridge, choose the ROM and use Save > Import save… on that file.
Savestates from 1.1.0 (Save state in the pause menu) load in 1.2.0 and later with the Display settings they were taken with: set Display as it was in 1.1.0 if one is refused, or continue from the game's own save, which always carries over. A 1.1.0 savestate taken in Far on a 1280x960 or 1240x1080 screen, where Far takes a size fitted to the screen since 1.2.0, loads once Display › Picture › Far size is on Fixed, which gives Far its 1.1.0 size again: choose Fixed from the home screen (the pause does not change it), then play and load it; or continue from the game's own save.