Skip to content

PyEmuera 3.0.0 Beta 1

Pre-release
Pre-release

Choose a tag to compare

@Meistertech-JP Meistertech-JP released this 16 Oct 02:20
· 15 commits to main since this release

PyEmuera 3.0.0 Beta 1 (v3.0.0b1)

🇯🇵 日本語

概要

PyEmuera、初のオープンソース公開です!

PyEmueraは、本家Emuera1824+v24向けのバリアント(ERB・CSV・ERH形式)を、Python環境の文字画面上で実行するための独立した高互換インタプリタです。既存のバリアントを原則として無改変で読み込み、WindowsやLinuxなどの環境で実行できます。

Emuera専用バリアントが動くeramakerだと思ってください。

本家Emueraの公式版ではありません。現在はパブリックベータ版であり、すべてのバリアントの動作や完全な互換性を保証するものではありません。

特徴と改善点

本家Emueraとの互換性

本家Emuera1824+v24のソースコードや実行結果を参照し、命令の評価順序、副作用、文字列処理、保存・読み込みなどの互換性を重視して実装しています。

開発過程では複数の実バリアントを検証しました。代表例として、『東方触手宮 Ver1.18.2修正版』では、開発版r16を使用し、Windows実機で新規開始から17日目の脱出エンディングまで到達しました。これは開発版での確認実績であり、Beta 1で同じ経路を再実行した結果ではありません。

文字列ソート互換性(r50)

ARRAYSORTでは、Windowsの日本語照合規則と.NET Framework相当のソート処理の再現を進め、本家Emueraの保存済み実測38条件(6条件+追加32条件)で、出力と並び順の一致を確認しています。すべての文字列での完全一致を保証するものではありません。

配布・互換性改善(r51/Beta 1)

  • Pythonソースコード・単体テスト・検証データ・ビルドスクリプトの公開
  • 通常のpipインストールで照合データが欠落する問題の修正
  • Python 3.14でのテスト互換性改善
  • OUTPUTLOGのI/O例外処理の修正
  • 診断レポート生成状況の表示改善
  • ERB・ERH・CSVの物理行分割処理の修正
  • Windows用起動バッチと導入ガイドの整備

動作環境

  • Python 3.10以上
  • 文字表示・入力が可能なターミナル

実行時にはPython標準ライブラリのみを使用し、追加のPythonランタイムライブラリや.NET Frameworkは不要です。開発・全単体テストにはPython 3.11以上が必要です。

Windows 10とLinuxに確認実績があります。これらは開発過程の測定を含み、Beta 1ですべての環境を再試験したものではありません。Pythonとターミナルが存在するだけで、あらゆる環境・バリアントの動作を保証するものではなく、プラットフォーム固有の入力処理・端末制御などに制限があり得ます。

その他の環境

Windows 11も動作対象ですが、十分な実機検証は完了していません。
PyEmueraはPython標準ライブラリのみで動作するため、macOSやAndroid(Termuxなど)でも、Python 3.10以上と適切なターミナルが利用できれば動作する可能性があります。
ただし、macOS・Androidでの実機検証はまだ行っていません。起動・入出力・互換性を保証するものではありません。
これらの環境での動作報告も歓迎します。

TermuxはAndroid上の実行環境の例です。PyEmueraをAndroidネイティブアプリとして提供しているという意味ではありません。

始め方

ReleaseのAssetsから PyEmuera-3.0.0b1.zip をダウンロードし、全体を展開してください。実行用pyz、Windows用起動バッチ、日本語の使い方ガイド、サンプル、ソースコード、テストが同梱されています。

GitHubが自動生成する Source code (zip) は、一般利用者向けのこのZIPとは別のソースアーカイブです。Python本体は別途用意してください。

Windowsでは、展開後にバリアントフォルダーを Start_PyEmuera.bat へドラッグ&ドロップして起動できます。Linuxなどでは、展開先のターミナルから実行します。

python PyEmuera.pyz "バリアントフォルダー"

環境に応じて python を python3 へ読み替えてください。このコマンドのmacOS・Androidでの正常動作は実機確認していません。

同梱の独立サンプル 「ぱみゅーら散歩帳」 もお試しください。

python PyEmuera.pyz sample --inputs sample/replay.txt --no-wait

詳細はZIP内の HOW_TO_USE_ja.txt と、最新の日本語README(main)をご覧ください。

既知の制限

  • 画像・音声・マウス操作は非対応です。
  • 本家GUI固有のフォント描画・ピクセル単位の配置は非対応です。端末そのもののフォント設定は利用できます。
  • EE/EMなどの拡張版専用機能は対象外です。
  • 非Windows環境の一部Old Hangul/Jamo文字列でソート結果が本家と異なる場合があります。
  • すべてのバリアント・全分岐の完全動作は保証しません。

詳細は互換性資料と既知の制限をご覧ください。

ライセンス・不具合報告

PyEmuera本体はMITライセンスで公開しています。本家Emueraのソースコードを研究してPythonで再実装した部分を含み、クリーンルーム実装ではありません。第三者由来のコード・資料・データには、それぞれのライセンスと利用条件が適用されます。第三者の権利表示と、末尾のSFMT参照元の許諾表示もご確認ください。

不具合報告はGitHub Issuesで受け付けます。PyEmueraのバージョン、OS・ターミナル・Pythonのバージョン、バリアント名とバージョン、再現手順、期待した結果と実際の結果、エラーメッセージを添えてください。

個人情報、認証情報、私的なセーブデータ、権利者の許可なく再配布できないバリアント本文などを無断で投稿しないでください。


🇬🇧 English

Overview

PyEmuera's first open-source release is here!

PyEmuera is an independent, high-compatibility Python interpreter for variants written for Emuera1824+v24 in ERB, CSV, and ERH format. It runs them in a text terminal on platforms such as Windows and Linux, generally without modifying the variant files.

Think of it as an eramaker that can run Emuera-specific variants.

This is not an official Emuera build. It is a public beta and does not guarantee complete compatibility or successful operation of every variant.

Features and Improvements

Compatibility with the original Emuera

The implementation refers to the source code and observed behavior of Emuera1824+v24, focusing on compatibility in evaluation order, side effects, string handling, and saving/loading.

Multiple real variants were tested during development. For example, development revision r16 reached the day-17 escape ending from a new game in 東方触手宮 Ver1.18.2修正版 on an actual Windows machine. This is a development-history result; the same route was not rerun on Beta 1.

String sorting compatibility (r50)

ARRAYSORT reproduces Windows Japanese collation and .NET Framework-equivalent sorting procedures. Output and ordering matched 38 saved measurement conditions from the original Emuera (6 initial conditions plus 32 additional conditions). This does not guarantee identical results for every string.

Distribution and compatibility improvements (r51 / Beta 1)

  • Published Python source code, unit tests, verification data, and build scripts
  • Fixed missing collation data in regular pip installations
  • Improved test compatibility with Python 3.14
  • Fixed I/O exception handling in OUTPUTLOG
  • Improved reporting of whether diagnostic reports were generated
  • Fixed physical-line splitting for ERB, ERH, and CSV files
  • Prepared Windows launchers and setup guides

System Requirements

  • Python 3.10 or later
  • A terminal capable of text display and input

At runtime, PyEmuera uses only the Python standard library. No additional Python runtime libraries or .NET Framework are required. Development and the full unit test suite require Python 3.11 or later.

Windows 10 and Linux have been tested during development. This history does not represent a full Beta 1 rerun on every environment. Having Python and a terminal alone does not guarantee operation on every platform or with every variant; platform-specific input handling and terminal control may have limitations.

Other platforms

Windows 11 is a target platform, but extensive testing on actual Windows 11 systems has not yet been completed.
Because PyEmuera uses only the Python standard library, it may also run on macOS and Android environments such as Termux, provided Python 3.10 or later and a suitable terminal are available.
However, macOS and Android have not yet been tested. Successful startup, input/output handling, and compatibility on these platforms are not guaranteed.
Feedback and test reports from these environments are welcome.

Termux is an example of an execution environment on Android. PyEmuera is not being distributed as a native Android app.

Getting Started

Download PyEmuera-3.0.0b1.zip from this release's Assets and extract the entire archive. It includes the executable pyz, Windows launchers, a Japanese user guide, a sample, source code, and tests.

GitHub's automatically generated Source code (zip) is a separate source archive, not the distribution intended for normal use. Install Python separately.

On Windows, drag the variant directory onto Start_PyEmuera.bat after extraction. On Linux and similar environments, run this from a terminal in the extracted directory:

python PyEmuera.pyz "path/to/variant"

Use python3 instead of python if appropriate for your environment. This command has not been verified on actual macOS or Android systems.

Try the bundled independent sample, 「ぱみゅーら散歩帳」 (Pamyura's Walking Journal):

python PyEmuera.pyz sample --inputs sample/replay.txt --no-wait

See HOW_TO_USE_ja.txt in the ZIP and the latest English README on main for further guidance.

Known Limitations

  • Images, audio, and mouse interaction are unsupported.
  • The original GUI's font rendering and pixel positioning are unsupported. Your terminal's own font settings remain available.
  • Features exclusive to extensions such as EE or EM are outside the scope.
  • On non-Windows platforms, some Old Hangul / Jamo strings may sort differently from the original.
  • Complete operation of every variant and every branch is not guaranteed.

See Compatibility and Known Limitations for details in Japanese.

License and Bug Reports

PyEmuera itself is released under the MIT License. It includes Python reimplementations informed by studying the original Emuera source code and is not a clean-room implementation. Third-party code, documentation, and data retain their respective licenses and terms. See Third-Party Notices and the preserved SFMT permission notice at the end of this release description.

Report bugs through GitHub Issues. Useful details include the PyEmuera version; OS, terminal, and Python versions; variant name and version; reproduction steps; expected and actual results; and error messages.

Do not post personal information, credentials, private saves, or variant text that cannot be redistributed without the rights holder's permission.


SFMT参照元の許諾表示

pyemuera/random1824.py が参照するHOBARA由来の部分には、Rei HOBARAが公式配布ページで提供するMITの選択肢を適用します。公式MIT原文の許諾・条件・免責は、配布物内の同一のMIT本文に対応します。PyEmuera本体のMIT宣言で第三者の条件を置き換えるものではありません。

この告知は以下の固定原本に対応します。著作権表示はZIPの THIRD_PARTY_NOTICES.txt(および source/THIRD_PARTY_NOTICES.md)とpyzの THIRD_PARTY_NOTICES.md に、許諾本文はZIPの LICENSE.txt(および source/LICENSE)とpyzの LICENSE に収録されています。次にHOBARAのMIT原文を再掲します。

PyEmuera-3.0.0b1.zip  SHA-256 df2f302490b638a6f7e74313bc40f98d36dfe7e0515e202f26deae7d5bc319a3
PyEmuera-3.0.0b1.pyz  SHA-256 305fcf27c723b9ca155ac087928f993eb32b141288fee689b0a621c0f337f1a7
Copyright (c) 2007 Rei Hobara

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.