Skip to content
jsjtstyPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

OpenMware

简体中文

An open-source reimplementation of the engine behind a family of Japanese visual novels (the "Mware" engine), written in C++20. It runs the original game data and Squirrel scripts: the engine only needs a legitimately owned copy of the game.

The current target is the Steam Chinese release of 君与彼女与彼女之恋 (You and Me and Her).

This repository contains no game data and no assets. You supply your own copy of the game. The NPK archive keys of the supported game are in keys.local.txt (private repository; remove the file before making it public).

Status

Work in progress. The engine boots the game and plays the title, the prologue, the story after the first choice and the second-playthrough "dark" route (including its separate UI), with text, sprites, transitions, effects, sound, WMV cutscenes, save/load (a snapshot of the script VM), quick save, skip and auto mode. Native launchers (library of games, play/stop) exist for every platform.

Known gaps:

  • Large parts of the story have not been played through; expect missing natives and glitches.
  • Only Windows (Direct3D 12) is regularly run on real hardware. The Vulkan/Metal shaders and the Linux, macOS, Android and iOS builds compile in CI but are only lightly tested at runtime.

Features

  • NPK3 archive reader (AES-256 + zstd), Squirrel 2.2.4 VM (32/64-bit bytecode) with the game's native API reimplemented
  • SDL3 GPU renderer (Vulkan, Direct3D 12, Metal) with HLSL shaders shipped pre-compiled as SPIR-V, DXIL and MSL
  • Text layout and markup, bezier paths, blur/colour/warp effects, WMV3/VC-1 video via a minimal FFmpeg
  • Byte-budgeted caches for textures and decoded sound; reboot-into-another-route support

Building

All dependencies (SDL3, zstd, libwebp, stb, FFmpeg) are fetched as source and compiled by CMake; no package manager is needed.

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build

See docs/building.md for per-platform notes (MSYS2 for FFmpeg on Windows, Android NDK, Xcode) and for regenerating the shaders.

Running

OpenMware.exe "D:\Games\<game folder>" --keys keys.txt

See docs/running.md and, for phones, docs/mobile.md.

Repository layout

Path Contents
src/, apps/ engine libraries and the openmware-player executable
third_party/squirrel2 Squirrel 2.2.4 fork
shaders/ HLSL sources and pre-compiled prebuilt/{spv,dxil,msl}
include/mware/ libmware C API for the launchers
launcher/ native launchers: Qt (Windows, Linux), SwiftUI (macOS, iOS) and Jetpack Compose (Android), see docs/launchers.md
tools/, scripts/ developer tools (archive extractor, script disassembler, reverse-engineering helpers)
docs/ engine, format and script notes
.github/workflows CI for Windows, Linux, macOS, Android, iOS

Legal

OpenMware is an independent project, not affiliated with or endorsed by the original developers or publishers. Do not use it with data you do not own.

The source code is licensed under the GNU General Public License v3.0 or later, see LICENSE. Third-party components keep their own licences (SDL3: zlib, Squirrel: MIT, FFmpeg and Qt: LGPL as shared libraries, ...), see docs/third-party.md. The licence covers only this repository: the game's data, scripts, art and sound belong to their rights holders and are not included.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages