Skip to content

Skate 3 Android v0.1.16

Choose a tag to compare

@andrewnakas andrewnakas released this 07 Sep 20:46
· 9 commits to main since this release

This one has a mitigation for the two devices that stop on a frontend screen and
never load the world, and it names what is actually wrong on them.

No game content is included and none is bundled in the APK. Setup is
unchanged: install, pick your disc image, download the title update, press Play.

What v0.1.15 found

The checks added in v0.1.15 came back from a Retroid Pocket 6 and ruled out
everything easy. Its default.xex matches the one this build was compiled
from. The title update applied successfully. And its codec tag table reads:

their table[0..7] = ['d-fo','rwar','d an','d fe','ed-b','ack ','elem','ents']
a working device  = ['P6L0','PFN0','Pack','etPl','ayer','....','Pack','etPl']

Read as one string, theirs is "d-forward and feed-back elements" - filter
terminology, so audio library text, sitting exactly where the codec tags belong.
The 'rwar' that earlier reports showed was never a four-character code; it is
the letters inside the word "forward".

So the image is right when it loads and wrong by the time audio starts.
Something overwrites static image data at run time, the codec lookup then misses
forever, and the frontend never advances - while the renderer keeps drawing that
screen at a locked 60 fps, which is why it reads as a hang.

What this release does about it

When the lookup misses, the table is checked against the two tags the build was
compiled with, and put back if a sentence has landed on them. The lookup is
retried every audio quantum, so the next retry resolves.

This is a mitigation and not a fix, and it is worth being clear about that.
The write that put a sentence there covered at least thirty-two bytes; this
restores eight. Whatever else it landed on is still wrong, and it will happen
again. What it buys is a device that gets past the frontend and can report what
else is broken. skate3_audio_repair_format_table=false turns it off to see the
failure unrepaired.

On a device where the table is intact this code never runs.

Also

Reports identify their own build - app version, engine version and build tag in
the first five lines. Six builds in one day previously all called themselves
0.1.14 (15).

Performance

Unchanged since v0.1.14, including the honest part: those fixes free roughly a
fifth of the render thread and do not remove the hitch when new map areas
stream in. That hitch is the game setting up a zone's objects, which the
Xbox 360 hitched on too. Leave skate3_diagnostics off for normal play.