**Skylanders: Imaginators** (Xbox 360, 2016) as a native Windows game: a controller, up to 3x the
console's resolution, 60 FPS, creation crystals, no emulator. You bring your own copy of the game;
nothing of it comes with this project.
> Unofficial fan project. Not affiliated with or endorsed by Activision or Toys for Bob.
## Getting started
**The easy way:** install [Core of Light](https://github.com/tsapZ/SkylandersCoreOfLight/releases)
and show it your disc. It downloads this game, sets it up and keeps it up to date, and does the same
for the other five games. It can also switch the game to English, German or French
([below](#english-german-or-french-from-your-ps3-disc)).
**On its own:**
1. Download `ImaginatorsRecompSetup-.exe` from the [Releases](https://github.com/tsapZ/ImaginatorsRecomp/releases) page.
2. Run it and pick your disc, as an ISO file or an extracted folder. It checks the version and takes
what it needs.
3. Start the game from the desktop or the Start menu.
What you need:
- Windows 10 or 11 (64-bit) and a graphics card with DirectX 12
- your own Xbox 360 disc of the game ([which one](#which-disc))
- a controller (Xbox or compatible); keyboard and mouse work too. A real Portal of Power is optional.
The setup isn't signed, so Windows may say "Windows protected your PC": click **More info**, then
**Run anyway**. No admin rights needed.
## What you get
- **A sharper picture:** 1x, 2x or 3x the console's 720p, AMD CAS sharpening and 16x texture
filtering, with the presets *Performance*, *Quality* and *Best*. Bloom and motion blur can be
turned down.
- **60 FPS**, or 30 as on the console, or 144 and more. The game keeps its normal speed.
- **Ultrawide:** a wider window shows more to the sides, and the HUD moves out to the edges.
- **No portal needed:** when the game asks for a Skylander, a menu with every figure opens by itself,
in the game's own look, creation crystals sorted by class. A real USB portal should work too
(not tried with this game yet).
- **A shorter Skylander intro** when a figure comes in, if you like (in the settings).
- **Your figures keep their progress** (level, gold, hats, upgrades) in files you can back up, and
each one is backed up before the game first saves over it: the portal menu puts an older version back.
- **Quick swap:** one button puts the Skylander you played before back on the portal.
- **A settings menu** in the game: graphics, frame rate, language, portal, controls, and *Extras*
(no health loss, full gold; off by default, and *Show cheats* hides the lot).
- **Achievements.**
- **A Discord status,** if you switch it on: the game, your Skylander and the level.
- **HD texture packs** work too ([how](https://github.com/tsapZ/SwapForceRecomp/blob/main/docs/texture-packs.md)).
- **Languages:** the disc has Spanish and Italian; English, German or French come from your PS3
disc ([below](#english-german-or-french-from-your-ps3-disc)).
Its settings in Core of Light, the same pages as in the game's own menu (F4). The game's own pictures aren't shown here: they're Activision's.
## Controls
The game plays as it always did. On top of that:
| | Controller | Keyboard |
|---|---|---|
| Portal menu (put figures and crystals on) | Guide, or Back + Start | F6 |
| Take figures off | Back + Y | F5 |
| Settings | Back + RB | F4 |
| Achievements | in the settings, under Game | F7 |
| Which controller plays which player | L3 + R3 | F9 |
The settings menu shows the keyboard keys for the game itself under Controls.
## How far it is
The opening cutscene and the first level play. Nobody has played the whole game to the end yet. If
something breaks further in, please [tell me](https://github.com/tsapZ/ImaginatorsRecomp/issues/new/choose).
What's being worked on: [docs/roadmap.md](docs/roadmap.md). Known bugs and the details:
[docs/STATUS.md](docs/STATUS.md).
## Help
**The setup says it's the wrong disc.** This port is made for one version of the game (see
[Which disc](#which-disc)). If you have another one, open an issue with the message (it names the disc's title, region and hash).
**The game is in Spanish.** That's the disc; see
[English, German or French](#english-german-or-french-from-your-ps3-disc).
**It runs slowly.** Press F4, go to Graphics and pick *Performance*, or a lower internal resolution.
**Where are my saves and figures?** Saves in `Documents\Skylanders\Imaginators`, figures in
`Documents\Skylanders\Figures` (shared by all six games). Core of Light can export all of it for a
new PC.
**Why are there no screenshots of the game?** They'd show its artwork, which belongs to Activision. The picture above is its settings page in Core of Light, the banner our own drawing.
## Which disc
The European Xbox 360 disc with Spanish and Italian (PAL, title `41560930`; the European 360 discs
of this game come in language pairs). Its SHA-256 is in
[docs/game/default.xex.sha256](docs/game/default.xex.sha256); the setup, the game and the launcher
check it. A 360 disc with English and German isn't known to this port yet; if it has the same
code it works as well: the check also compares the code part of the file ([docs/game/default.xex.code](docs/game/default.xex.code)).
## English, German or French from your PS3 disc
If you also own the PS3 disc of the game, the easy way is
[Core of Light](https://github.com/tsapZ/SkylandersCoreOfLight): Settings > Imaginators language,
pick English, German or French, then the PS3 disc. It puts that language's texts, voices and movies
into the installed game in about a minute, and can take them out again.
Without the launcher, `tools/add_language.py` does the same in your extracted 360 disc (`rom/`):
menus, texts and subtitles; with `--voices` the voices too, with `--movies` the story movies'
speech (the picture stays the 360's).
python tools/add_language.py --language en --ps3 "D:\path\to\the PS3 disc.iso" [--voices] [--movies]
python tools/add_language.py --restore (back to the disc's Spanish)
It needs 7-Zip for the PS3 .iso (or the disc's extracted `PS3_GAME\USRDIR` folder), Python 3 and
about 2.3 GB of free space while it runs, and takes well under a minute. The title screen, the
licence agreement and the Xbox 360's own messages switch to that language too.
## Reporting a problem
Open an [issue](https://github.com/tsapZ/ImaginatorsRecomp/issues/new/choose) with the **Problem** form:
what you did and what happened. It helps a lot to attach the report from Core of Light (**LB**, the
launcher's settings, > **Report a problem**, or the question it asks after a crash). That's one text
file on your desktop with the latest logs and settings, your Windows user name taken out. Without
the launcher, the logs are in the `logs` folder next to the game's exe.
## Why this exists
I wanted to play the Xbox 360 Skylanders games on my PC with just a controller, no emulator, and
with a nicer picture. That's really all it is: a private fan project. It's public in case someone
else wants the same.
## How it was made
To be upfront about it: almost all of the code here was written by [Claude](https://claude.ai) in
Claude Code, the recompile setup, the fixes, the portal menu, the launcher and the installer, and
most of the docs too. I decided what to build, said what was broken and played the games a lot. If
AI-made projects aren't your thing, that's fair.
## For developers
The game's Xbox 360 code is recompiled to x86-64 with [ReXGlue](https://github.com/rexglue/rexglue-sdk)
(no CPU emulation); the graphics go through Xenia's D3D12 path. This repository holds only our own
code: the recompiled game code is made on your PC from your disc's `default.xex` when you build.
Building needs Windows, Visual Studio 2022 (C++ workload and C++ Clang tools), CMake, Ninja, just,
Git and Python 3, and the extracted disc in `rom/` ([rom/README.md](rom/README.md)). Steps:
[docs/development.md](docs/development.md), then `just play-release`. `just package-installer` builds
the setup. All docs: [docs/README.md](docs/README.md).
The banner and the button at the top are drawn by Core of Light's [`tools/make_banner.ps1`](https://github.com/tsapZ/SkylandersCoreOfLight/blob/main/tools/make_banner.ps1).
## Credits
- **[GiantsRecomp](https://github.com/tsapZ/GiantsRecomp)**, **[SSARecomp](https://github.com/tsapZ/SSARecomp)**
and **[SwapForceRecomp](https://github.com/tsapZ/SwapForceRecomp)**: this project is scaffolded
from them; app, portal, menus and tooling come from there.
- **[GiantsRecomp by TheBiemGamer](https://github.com/TheBiemGamer/GiantsRecomp)** brought
Skylanders Giants to PC first and is the template these ports started from.
- **[ReXGlue](https://github.com/rexglue/rexglue-sdk)**, the static recompilation SDK, here in a
fork with our fixes on top.
- **[skylanders-portal](https://github.com/TheBiemGamer/skylanders-portal)** by TheBiemGamer:
the portal (software and USB), its overlay and the figure catalog, here in a fork with the
shared portal and settings menus on top.
- Figure save-data decoding builds on public reverse-engineering of the Skylanders NFC format,
among others **[SkyReader](https://github.com/reedstrm/SkyReader)**.
- **[extract-xiso](https://github.com/XboxDev/extract-xiso)** is included (prebuilt, unmodified)
for the installer (`installer/extract-xiso.LICENSE.txt`).
Skylanders is a trademark of Activision. This project is not affiliated with or endorsed by
Activision.
## License
The code and documentation in this repository are released under the [MIT license](LICENSE). That
doesn't cover the game or its data, which you need to own and supply yourself, or the third-party
components in `thirdparty/`, which keep their own licenses.