WPR 0.1.03
Prebuilt WPR 0.1.03.
| Download | Platform |
|---|---|
WPR-Setup-0.1.03.exe |
Windows x64 — self-contained, no .NET install required |
WPR-0.1.03.apk |
Android — API 21+, arm64-v8a / x86_64 |
What's changed
Changes since v0.1.0.
Highlights
Two hundred more games have a real achievement list, your phone buzzes, and any game can sit on
your home screen. Most games showed an empty achievements page, vibration was never implemented
at all, a whole class of tilt-steered games sat perfectly still no matter how the phone was held,
and every game had to be started from inside WPR.
| 🏆 | 200 more games have achievements — names, descriptions, gamerscores and artwork, where the list was empty before |
| 📳 | Games can vibrate your phone on Android. Collisions, wrong answers, menu taps — all of it was silent before |
| 🔕 | A single vibration on/off switch in Settings, covering every game and any connected controller |
| 🧭 | Tilt works in games that never responded to it — Doodle Jump among them, on Windows as well as Android |
| 📌 | Pin a game to your Android home screen, with its own box art and name, and launch it in one tap |
| 🖼️ | Uninstalled games keep their icon on the achievements list instead of dropping to a grey placeholder |
| 📦 | The Android download is 20 MB smaller than 0.1.02, despite carrying all that new artwork |
Upgrading? Nothing to do — no repatch or reinstall. Installed games pick this up the next
time you launch them, achievements included.
Two hundred more games have achievements
In 0.1.02, 54 games had an achievement list. Opening the achievements page for any of the other
223 showed nothing at all — not a locked list, not placeholders, an empty page. The unlocks were
being awarded and recorded correctly the whole time; there was simply nothing to display them
against.
254 games now have one, covering 4,350 achievements — each with its proper name,
description, gamerscore and artwork. Roughly 3,500 pieces of achievement art are new.
The names and keys come from the games themselves. Every Windows Phone game that has Xbox LIVE
achievements carries a small table inside it, generated when the game was submitted, listing the
exact identifiers it uses to award them. WPR had never read it. That table is the one part that
has to be exactly right — an achievement is unlocked by name, so a single wrong character means it
can never fire — and reading it turned up two catalogues that had been wrong all along: an
achievement in Max & The Magic Marker that could never have unlocked, and twenty in
Crimson Dragon: Side Story that were guessed display names rather than the real identifiers.
23 games still show an empty page, and always will: their achievements never went through the part
of Windows Phone that WPR emulates, so there is nothing to hook into. They are the later
native-code titles — the Angry Birds ports, Halo: Spartan Assault and Strike, Terraria, Geometry
Dash and similar, which do not run on WPR at all.
Nothing to do to get any of this: no reinstall, no repatch. Your existing unlocks are untouched.
Games can vibrate your phone
Windows Phone games buzz constantly — when you crash a car, get an answer wrong, or just tap a
menu item. On WPR that has never once happened. The part of the runtime a game calls to vibrate
the phone existed, but did nothing at all: it accepted the request and returned. No error, no
warning, nothing in any log. Games behaved as though it had worked.
It now drives the real motor on Android, including vibration strength on phones whose hardware
supports it, rather than everything being full-force.
Windows is unchanged — a desktop PC has no vibration motor.
Turn vibration off, everywhere, in one place
Settings → VIBRATION on Android. One switch, and it applies to every game — there is
nothing to set per game.
It also covers controller rumble, so switching vibration off really does mean off, rather than
silencing the phone and leaving a connected gamepad shaking.
Flicking it on gives a short confirmation buzz, the same way the phone's own haptics settings do —
so you can tell "switched on" apart from "switched on but this device has no motor". If your
device has no motor, the page says so instead of leaving you guessing.
A game that is already running keeps whatever setting it started with; the change applies from the
next time you launch it.
Tilt works in games that ignored it completely
Some games never responded to tilt at all — on Windows as well as Android.
Windows Phone reports tilt relative to the phone itself, not to whatever way up the game is drawn,
so a game that supports more than one screen orientation rotates the readings itself to match. To
do that it asks the runtime which way the screen is currently oriented — and WPR never answered.
Games written to handle that carefully would rather ignore a reading than act on one they cannot
interpret, so they threw every single one away and sat perfectly still.
Doodle Jump is the clearest example: the whole game is steered by tilting, and the character
simply would not move. It now plays properly, in portrait, on both Windows and Android.
Any tilt-steered game previously written off as unplayable is worth another go.
Pin a game to your home screen
Long-press a game in the games list and pick pin to start. Android asks whether to add it, and
the game gets its own icon on the home screen — its own box art, its own name, sitting alongside
your other apps.
Tapping it goes straight into the game. No WPR Start screen, no games list on the way through,
and when you quit you land back on the home screen rather than inside WPR.
Pin as many games as you like. If a home screen doesn't support pinned icons, the option isn't
offered rather than failing when you tap it.
Uninstalling a game switches its shortcut off, so a pinned icon can't be left pointing at a game
that isn't there any more. (Android doesn't let an app delete an icon from your home screen, so
you remove the icon itself the same way you remove any other — drag it away.)
Android only for now — Windows has no equivalent yet.
Uninstalled games keep their icon
Uninstalling a game keeps its achievements — that is on purpose, so clearing space is never the
thing that costs you your gamerscore. The game's icon did not stay with them, though: the row
dropped to a grey gamepad placeholder, so a list of games you had finished and removed turned into
a row of blank tiles.
The icon was only ever kept inside the game's own folder, which uninstalling deletes. Each
achievement's own artwork lives somewhere safer and carried on showing perfectly, which is exactly
what made the blank tile beside it look like a glitch.
WPR now keeps its own copy of every game's icon, outside the game's folder, where uninstalling
cannot reach it. On Android and on Windows alike — the desktop achievements page had the same gap.
Games you have already installed are covered without you doing anything: the icon is saved at
the moment you uninstall, so it is kept in time either way. Re-patching a game saves it there and
then, if you would rather not leave it to chance.
A smaller download
The Android APK is 137 MB against 0.1.02's 158 MB — 20 MB smaller, even though it now carries
achievement artwork for two hundred more games.
Reading the phone's motion sensor no longer needs the third-party library it used to, and that
library and everything it dragged in are gone. That saved considerably more than the new artwork
costs.
Also fixed
An achievement catalogue that got shorter between releases would arrive on Android with the tail
of the previous version still stuck on the end, leaving it unreadable — and a catalogue that fails
to load shows no achievements rather than reporting a problem. Only one game was affected in
practice (Crimson Dragon: Side Story), but the copy that deploys catalogues on every launch could
have done it to any of them.
All changes
Features
- arm native research
- keyboard input emulation, module architecture, and game fixes
- android vibration support with a global on/off setting
- pin a game to the android home screen
- recover achievement keys for 190 games from embedded XLAST config
- curate achievements for four playable games
- curate eleven more catalogues from their resource tables
- curate Doodle God Blitz and Picnic Wars from their content XML
- real gamerscores for six games from their own score tables
- recover eleven catalogues whose XLAST pair table would not parse
- names, gamerscores and descriptions for 169 catalogues
- gamerscores for fifteen catalogues curated from their own packages
- a game description for every catalogue
- achievement icons for 200 more games
Fixes
- Mirror's Edge on Android - animation, music and driver selection
- populate TouchPanel.DisplayOrientation so tilt games get their readings
- read the Android accelerometer directly, not through Xamarin.Essentials
- keep a game's icon after uninstall so achievements keep their artwork
- keys were filed under Tentacles' stale ProductID
- repair catalogue text mangled by an ANSI round trip
Chores
- open release notes for 0.1.03 and mark it unreleased
- rename WPR.Input.XamarinEssentials to WPR.Input.AndroidSensor
- add the tilt fix to the 0.1.03 notes
- add the game icon fix to the 0.1.03 notes
- turn the 0.1.03 notes into a release document
Other changes
- plans native
Built from commit ec46870.