Underground 2 Revived
Play Need for Speed: Underground 2 (2004) in Chrome and Firefox with WebGPU graphics, Web Audio, up to 120 fps widescreen, controller support, free roam and Online races with friends. Fan project, not
Shiori downloads the PC visual novels in your Steam library and plays them on iPhone, iPad and Apple TV with native engine runtimes.
GamesSwift · CGitHub @OWCramerOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Play the visual novels you own on Steam on iPhone, iPad and Apple TV, on native engines: Ren'Py, KiriKiri, Artemis, Siglus, Luca System and CatSystem2.
Taken from the repository README
Loading the full README.
Read the full README ↗A player for the visual novels you own, on iPhone, iPad and Apple TV. Sign in with your Steam account, download your PC games onto the device, add patches through the Files app, and play them with touch, a keyboard and pointer, or a controller.
Shiori doesn't include or sell any games, and this repository holds no game content. It plays the games your account owns.
Join the TestFlight beta · Website · Support · Privacy Policy · Compatibility · Patches
Shiori runs each game on a native runtime for its engine. Each engine is its own repository and Swift package:
| Engine | Package | Runtime |
|---|---|---|
| Ren'Py 6.99–8 | in this repository (App/RenPy) | Ren'Py's own iOS runtime (renios), embedded CPython and SDL2 |
| KiriKiri / KiriKiri Z | KiriKit | krkr2's core with Shiori's environment and Metal compositor |
| Artemis | ArtemisKit | Shiori's own interpreter (Swift, Lua 5.1) |
| SiglusEngine | SiglusKit | siglus_rs, patched |
| Luca System | LucaKit | Shiori's own interpreter (Swift) |
| CatSystem2 | CatSystemKit | Shiori's own interpreter (Swift), and the E-mote renderer KiriKit uses |
Movies use an LGPL build of FFmpeg (Scripts/ffmpeg, see below). Steam sign-in, downloads and Steam Cloud are Packages/SteamKit.
Needs Xcode 26 or later, XcodeGen, and for the engine frameworks CMake, Ninja and Rust (rustup target add aarch64-apple-ios aarch64-apple-ios-sim).
The engine frameworks are prebuilt into Vendor/ (git-ignored) by each repository's scripts. Check the repositories out side by side:
git clone https://github.com/OWCramer/shiori
git clone https://github.com/OWCramer/KiriKit
git clone https://github.com/OWCramer/SiglusKit
git clone https://github.com/OWCramer/LucaKit
Then build each one (every script is safe to re-run):
(cd shiori && Scripts/ffmpeg/fetch-ffmpeg.sh && Scripts/ffmpeg/build-ios-ffmpeg.sh)
(cd KiriKit && Scripts/krkr2/fetch.sh && Scripts/krkr2/build-framework.sh)
(cd SiglusKit && Scripts/siglus/fetch-siglus.sh && Scripts/siglus/build-ios-framework.sh)
(cd LucaKit && Scripts/luca/fetch-vpx.sh && Scripts/luca/build-ios-vpx.sh)
(cd shiori && Scripts/build-renpy-runtimes.sh && Scripts/tv/build-renpy-tv.sh)
cp -R KiriKit/Vendor/ShioriKrkr.xcframework SiglusKit/Vendor/ShioriSiglus.xcframework LucaKit/Vendor/ShioriVPX.xcframework shiori/Vendor/
Then generate the project and open it:
cd shiori
xcodegen generate
open Shiori.xcodeproj
Set your own team in Signing.local.xcconfig (DEVELOPMENT_TEAM = …, not committed); the bundle and iCloud container IDs are Shiori's, so change them too for a build of your own.
The engine packages resolve from GitHub by version. To work on an engine and the app together, point the project at your checkouts with a project.local.yml (git-ignored) and generate from it:
include: [project.yml]
packages:
KiriKit:
path: ../KiriKit
xcodegen generate --spec project.local.yml
Shiori is free software under the Mozilla Public License 2.0. Third-party components keep their own licences; the app shows their notices in Settings › About › Acknowledgements (App/Resources/Acknowledgements).
FFmpeg, FriBidi and pygame_sdl2 are LGPL and linked statically: the build scripts above rebuild them from source, so a modified copy can be linked into Shiori.
Shiori links FFmpeg n8.0.3 (source) statically, under the LGPL-2.1-or-later. Scripts/ffmpeg/fetch-ffmpeg.sh fetches that tag and Scripts/ffmpeg/build-ios-ffmpeg.sh builds it (build-ffmpeg-macos.sh for KiriKit's Mac harness) with --disable-everything --disable-autodetect and only: demuxers asf, mpegps and mpegvideo; decoders wmv1, wmv2, wmv3, vc1, wmav1, wmav2, wmapro, wmalossless, mpeg1video, mpeg2video, mp2 and mp3; parsers mpegvideo and mpegaudio. No GPL, non-free or version-3 parts are enabled.
To relink Shiori with a modified FFmpeg: change the source fetched into Vendor/ffmpeg, rerun build-ios-ffmpeg.sh (it writes Vendor/ShioriFFmpeg.xcframework), rebuild KiriKit and SiglusKit's frameworks as above so they pick it up, then rebuild the app. On request, the FFmpeg source and build scripts for any released version are available from [email protected].
Shiori isn't affiliated with or endorsed by Valve. Steam is a trademark of Valve Corporation.
[email protected] · security issues: see SECURITY.md