Repository navigation
Releases: ttom795/Skyrim_Android
Releases · ttom795/Skyrim_Android
Release list
Version 0.22
Skyrim For Android 0.22
APK: Skyrim-0.22.apk (arm64-v8a, Android 9+, Vulkan 1.1).
New
- Full on-screen controller. Left stick (move) and right stick (camera), with L3/R3 buttons beside them. LB and LT are rectangular buttons in the top-left corner, with RB and RT in the top-right. Back, the keyboard button and Start are along the top centre. Touching anywhere on the left half drives the left stick and the right stick responds to touches on or near it.
- Full file access prompt. On Android 11 and later, the launcher asks for "All files access" on start until you grant it or tap "Not now". A button in the launcher asks again. Choosing a folder that isn't on internal storage (an SD card or USB drive) also brings up the prompt.
Please attach port/log.txt from your Skyrim folder to any bug report.
Version 0.21
Skyrim Android 0.21
APK: Skyrim-0.21.apk (arm64-v8a, Android 9+, Vulkan 1.1).
Changes (major performance increase)
- Cached indirect calls. About 99,000 call sites that go through vtables and function pointers now keep their last target in a per-site cache. On a hit, the call is one compare plus a direct call, not a hash lookup in the dispatcher.
- Relaxed memory ordering. In 0.17, TSO emulation made every non-stack guest load and store an
ldar/stlr. They're now plain (volatile) accesses, which the CPU can reorder and pipeline freely.
If it crashes
- Put an empty file
port/save/singlecore.txtin the Skyrim folder. All game threads then run on one core, which is safe with any memory ordering. - A source build with
-DLB_STRICT_ORDER=ONbrings back the 0.20 ordering.
Version 0.20
Skyrim for Android 0.20
APK: Skyrim-0.20.apk (arm64-v8a, Android 9+, Vulkan 1.1).
Performance
- Fast cores only. The game's threads, and the renderer, driver and audio threads they start, now stay on the phone's fast CPU cores. Before, Android moved the main game thread onto the slow cores at times, and those frames took much longer. The log line "guest threads on the fast cores" shows which cores are used. Create
port/save/allcores.txtto allow all cores again. - Fewer wake-ups. Signalling an event, semaphore or mutex now wakes only the threads waiting on it. Before, one shared condition variable woke every waiting thread each time, and made a system call even when nobody was waiting. The game's job system signals about 100,000 times a second.
- BSA archives are opened once. The game opens
Skyrim - Sounds.bsaagain for every sound. Each open on Android's shared storage goes through the FUSE daemon. Now all handles share one open file.
Known issues
- xWMA music and voices are still silent (the log now notes this once per 100 sounds).
Please attach port/log.txt from your Skyrim folder to any bug report.
Version 0.19.1
Skyrim for Android 0.19.1
APK: Skyrim-0.19.1.apk (arm64-v8a, Android 9+, Vulkan 1.1).
New
- Aspect ratio dropdown. The launcher no longer takes the shape from the screen. Pick 16:9, 16:10, 4:3, 21:9 or Screen, and the Resolution list shows sizes at that aspect ratio. When it doesn't match the screen (for example 16:9 on a 20:9 phone), the game is shown centred with black bars. The touch controls are drawn inside the picture and touches are mapped to it.
- File check. The launcher checks the SHA-1 of
TESV.exe, against the version the port was built from, and names any file that doesn't match. If only the SteamTESV.exeis there, it says to unpack it with Steamless. - Keyboard button. A small button in the top-left corner opens the phone's keyboard, for the few places that need typing (character name, save names, console). It is shown even when the touch controls are off.
Please attach port/log.txt from your Skyrim folder to any bug report.
Version 0.18
Skyrim for Android 0.18
APK: Skyrim-0.18.apk (arm64-v8a, Android 9+, Vulkan 1.1).
Fixed
- Loading a save no longer crashes. The port's Windows conversion layer only had 64 thread-local storage slots, while actual Windows has 1088. Loading a save makes the game create more per-thread pools than that. Each pool after the 64th got an invalid slot, filled up after about 10 uses, and gave the main thread a null pointer. There are now 576 slots.
- A newly allocated thread-local slot now reads as empty in every thread, as on Windows, even when an old index is reused.
Changed
- The game sees up to 4 CPU cores instead of 1, like a normal PC. It sizes its job system from this.
Still in 0.18 (from 0.17)
- The game's threads run on all cores, with x86 memory ordering kept by load-acquire/store-release.
- UI images (menu backgrounds, message boxes, logos, button icons) render.
port/save/singlecore.txtin your Skyrim folder pins the game to one core if you want to rule out threading problems.
Known issues
- xWMA music and voices are silent.
- Performance on an Adreno 610 is low; use the Low preset and a low resolution.
Please attach port/log.txt from your Skyrim folder to any bug report.
Version 0.17
Skyrim for Android 0.17
APK: Skyrim-0.17.apk (arm64-v8a, Android 9+, Vulkan 1.1).
- The game's threads run on all cores again, with x86 memory ordering kept by load-acquire/store-release.
- Fixed the call-dispatcher race that crashed multi-core builds.
- UI images (menu backgrounds, message boxes, logos, button icons) render again.
- If you see crashes, create
port/save/singlecore.txtin your Skyrim folder and attachport/log.txtto your report.
Known issues: xWMA music and voices are silent; performance on an Adreno 610 is low.