Skip to content

WPR 0.1.02

Choose a tag to compare

@github-actions github-actions released this 03 Sep 21:06
Immutable release. Only release title and notes can be modified.
2f35d69

Prebuilt WPR 0.1.02.

Download Platform
WPR-Setup-0.1.02.exe Windows x64 — self-contained, no .NET install required
WPR-0.1.02.apk Android — API 21+, arm64-v8a / x86_64

What's changed

Changes since v0.1.01.

Highlights

Play touch games with a keyboard, and a batch of games that now finish what they start. Two
long-standing hangs, a black screen, and saves that silently never happened.

⌨️ Bind keys to taps and swipes. Draw the gesture on a phone outline; saved per game
🔙 The Back key is rebindable — still Escape by default
💾 Games save again. Progress and settings were being lost while the game looked fine
🧊 Game Room: Pitfall! no longer freezes on its second splash screen
⬛ Guitar Hero 5 no longer shows a black screen on Android
🐦 Angry Birds' credits page can be left again instead of freezing
📥 Installing a second game in one session no longer hangs on Android
🏆 Achievement unlock toasts appear on Android, and secrets stay secret on Windows

Upgrading? Repatch your installed games — Windows has a Repatch button on each game's
page and a --repatch-installed switch; Android has the same button. Games patched by an older
version will not launch until you do.


Most of this release is one theme: things that started and never finished. A game that hung halfway
through loading, an install that wedged the app behind it, a save that was written into a file
nobody could open. None of them reported an error — each one just stopped.

Games save again

Progress, settings and high scores could silently fail to persist.

WP7 gave every app its own short-lived process, so leaving a save file open cost nothing. WPR runs
games inside one long-lived launcher, where a file left open blocks the next write to it. A game
would read its save, leave the handle open, later try to write, be refused, swallow the error in
its own error handling, and carry on looking perfectly healthy — with nothing written.

Angry Birds is the case this was found on: muting the sound never survived a restart, and neither
did high scores. Nothing about the fault was specific to it, so any game reported as "loses
progress" is worth another try.

Game Room: Pitfall! no longer freezes on the second splash

It stopped dead on the Krome Studios logo, on Android and on Windows alike.

Games that load their content on a background thread while the screen they are showing does not
need redrawing could deadlock outright: the loader was waiting for the screen to be drawn, and the
screen was waiting for the loader to produce something to draw. Neither ever moved.

This was only ever possible on the OpenGL graphics driver, which is the one Android uses — which is
why it arrived as an Android report, though it reproduced on Windows too once the same driver was
forced.

Guitar Hero 5 no longer shows a black screen on Android

Black from the first frame, no crash, nothing in the logs.

The game keeps every string, texture and screen layout in a single bundle, and loading it needs a
helper assembly that the game refers to only by a partial name. On Android that partial name was
being resolved by loading a second, separate copy of the same assembly — so the bundle came back as
a type that was, to the game, not the type it asked for. The load failed, the game carried on with
nothing to draw.

Angry Birds' credits page can be left again

The credits scrolled a little, then froze, and the page could not be exited.

The page asks for an extremely short frame time on entry and restores the normal one only on the
way out. Honouring that request literally gave the game a time delta of zero, which stopped every
animation and timer on the page — including the one that would have let you leave. Frame times are
now floored at 60 frames per second, which is the fastest any real Windows Phone could draw.

Installing a second game in one session no longer hangs on Android

The second install would sit at "reading manifest" forever.

Converting a game's soundtrack left the app unable to continue afterwards — the conversion itself
always succeeded, so nothing looked wrong until the next thing you did. Soundtrack conversion now
runs in a separate process that is discarded when it finishes.

Play touch games with a keyboard

New on Windows: a key can now stand in for a tap or a swipe, for games built entirely around
touch.

Bindings are per game, because a tap only means anything at a particular place on a particular
game's screen. The Controls button on a game's page opens an editor where you draw the
gesture on a to-scale phone outline rather than typing coordinates — press where the finger should
go down, drag to where it lifts, release. A click without dragging is a tap.

The Back key is now rebindable too, in Settings → Controls. It remains Escape unless you change
it. On Android, Back is the phone's own Back button and is deliberately not configurable.

XNA games only for now — Silverlight titles use a separate input path.

Achievements

  • Secret achievements no longer spoil themselves on Windows. Unearned secrets were showing
    their real name and description; only the Android list was hiding them.
  • Unlock toasts now appear on Android. The achievement was always awarded and saved — nothing
    was ever shown.
  • Completion percentages and game ordering now match between Windows and Android, and the
    Windows achievements page no longer comes up empty for some games.

All changes

Features

  • arm native research
  • keyboard input emulation, module architecture, and game fixes

Fixes

  • Mirror's Edge on Android - animation, music and driver selection

Built from commit 2f35d69.