みずぴー日記

人間の再起動ボタンはハワイのビーチにある

ノベルゲーム移植の歴史

この記事はインターネット老人会 Advent Calendar 2023 - Adventarへの飛び込み参加である。

これは数年前に書き溜めていたテキストであり、一部調べきれていない箇所がある。また不正確な記述も混じっていると思う。

この内容を話すためのイベントが2000年ごろのインターネットを懐かしむ会(ハッシュタグ: #インターネット老人会)であり、「インターネット老人会」というミームを生み出す一助となったと自負している。*1

概要

1990年代後半、PCの画像表現・能力の向上と低価格化により、PCユーザが増加した。 その変化の中で、「ToHeart」「Kanon」などといった成人向けノベルゲームが大ヒットし、ジャンルとして定着した。

http://aquaplus.jp/th/index.html

大多数のノベルゲームはWindowsのみを動作プラットフォームとしていた。そのため、BSD/Linux等の非WindowsOSで、そのようなノベルゲームをプレイできない。 また、当時の携帯端末はPalmOS/WindowsCE等の携帯端末用のOSで動いていたため、同様にノベルゲームをプレイできない。

ノベルゲームはの主要な要素は画像、音楽、テキストを表示するだけで成立し、シビアなタイミングが要求する他種類のゲームと比較すると技術的難易度が低い。そのため、一部ユーザにより、他OSへの移植が盛んに行なわれた。

本稿では1990年代末期から2000年代初頭にかけて行なわれた、ノベルゲームの他OSへの移植について述べる。ただし、すでに多くの情報が散逸しており、一部不正確な記述が混じることとなる。

移植のアプローチについて

Windows機でノベルゲームをプレイできるようにする手法はいくつか存在している。 以下に詳細をあげるが、本稿ではこれらを総称して移植と表記する。

互換動作環境

開発コストを下げるため、ノベルゲームは既存のノベルゲームエンジン(以下エンジン)上で動作するように開発されることが多い。 またそのエンジンは、メーカごとで共通化されていることが多い。

そこで、そのエンジンの動作を解析し、その動作を再現するプログラムを開発することで、別環境にノベルゲームをプレイすることができる。 本稿ではこのプログラムを互換動作環境と表記する。

本手法の利点として

  • 一度、互換動作環境を開発すれば同一をエンジンを用いる別のノベルゲームもプレイ可能
  • 元のゲームエンジンに忠実に開発すれば、プレイ感も維持できる

という点があげられる。

反面、大半のゲームエンジンは仕様が公開されていないため内部の動作の解析作業が必要となる上、互換動作環境の開発も必要となる。そのため、作業量が多くなりがちである。

変換ツール

互換動作環境を開発する方法では独自のプログラムを開発していた。しかし、NScripter/吉里吉里といった仕様が公開されたオープンなエンジンがいくつか存在している。

そこで、元のゲームのテキスト・画像・音楽等のデータを抜き出し、別のエンジン上で動作するよう変換を行なうことで、別環境でノベルゲームをプレイできるようになる。 本稿ではこの変換を行なうツールのことを変換ツールと表記する。

移植先のプログラムを作る必要がないため、データの抽出部分にのみ注力することができ、移植のための作業量を軽減できる。ただし、移植先のエンジンの表現力の制約をそのまま受けるため、必ずしも元のゲームの挙動を再現できるわけではない。

移植対象となったOS・機器

移植対象となった主なOS・機器について挙げる。 本稿は移植対象のOS・機器に対する解説が主ではないため、簡単な導入に留める。

PC-UNIX

当初、UNIXは高速な汎用機上で動作するよう設計・開発された。しかし、90年代にはPCの処理性能が向上し、いくつかの実装が登場した。また、これらはPC-UNIXと呼ばれた。

UNIXではGUIX Window System(以下 X Window)というOSとは独立したコンポーネントにて実現されている。そのため、ノベルゲームを移植する際にはX Windowへの移植が主に行なわれていた。

またOSとは独立しているため、1つの互換動作環境は複数のOSをサポートすることが多い。例えば、Leafゲームの互換動作環境であるXLVNSは以下のOSをサポートする。

携帯端末向けOS

携帯情報端末(PDA)と呼ばれる小型の携帯端末が各社より販売されていた。当初はスケジュール、ToDoといったものが主であったが、2000年ごろには画像表示、音楽再生等のマルチメディア機能を搭載するようになった。

ノートパソコンと比較すると機能は限定的であるものの、持ち運びが容易であるため、常にノベルゲームをプレイしたい層によって移植が行なわれた。

PDA用OSは複数存在しており、主に以下のものが移植対処となった。

ゲームボーイ/ゲームボーイアドバンス

本来、ゲームボーイ/ゲームボーイアドバンス等の携帯ゲーム機のプログラム開発には専用の開発キットが必要である。またそのような開発キットはゲームの開発メーカより正規のライセンス許諾を受けなければ入手できない。

しかし、ユーザによる解析およびマジコンと呼ばれる非公式なプログラムも起動できる装置の登場により、自作ゲームを起動させることが可能となった。

これを利用し、ノベルゲームの携帯ゲーム機への移植も行なわれていた。

インテル帽子屋

権利会社との関係性について

ノベルゲームの解析は利用許諾に抵触しかねない行為だが、メーカーとの関係は概ね良好であった。 xkanon/xakane/xvns等は販売会社に許可をとった上で配布されていた。また、鎮花祭というゲームでは互換環境へのリンクが貼られていた。

http://studio-air.com/air/products/game1/01fx.html

System3.5互換動作環境

アリスソフトは1980年代のアダルトゲーム創生期から存在するゲームブランドの1つであり、今なお大手として存在し続けている。後述するゲーム性よりもシナリオを重視したノベルゲームと異なり、アリスソフトはゲーム性に富んだ戦略SLGRPGなどといったものも多数リリースしている。

鬼畜王ランス

Windows95発売以降のアリスソフトのゲームは、基本的にSystem3.5という独自のゲームエンジン上で動作するよう開発されている。 さらに、このSystem3.5の仕様は公開されていたため、他の環境への移植が盛んに行なわれた。

ただ、そういった開発はすべて2000年以前に主な開発が行なわれおり、ほぼすべてのサイトが消失してしまったため、あまり詳細な情報は残っていない。

System3.5 for X

System3.5 for X(別名: XSystem 3.5)は、X Window Systemを用いたSystem3.5互換動作環境である。

このSystem3.5 for Xの存在が後の互換動作環境に大きな影響を与えることのなる。特にXにおける全画面表示のための処理部分は、多くの互換動作環境の開発において、参考にされた。

Debian/Ubuntuのレポジトリにも格納されているため、現時点でもインストール・ソースコードの入手が可能である。

http://packages.ubuntu.com/ja/precise/xsystem35

SD35B

SD35Bは、BeOS上のSystem3.5/3.6の互換動作環境である。

SD35C

SD35CはSD35Bを元とした、PocketPC上のSystem3.5/3.6互換動作環境である。

これは先行する互換動作環境に強い影響を受けており * SD35Bのシナリオデコーダ部分 * System3.5 for X Window Systemの処理の一部 * わっふる for PocketPC(後述)の音楽処理ルーチン を参考に開発されている。

その他

System3.5以前のアリスソフトのゲームは、System3(PC98)もしくはN88-BASIC(PC88/PC98)で動作するようになっていた。これらのソフトウェアをSystem3/System3.5に移植し、Windows環境環境でプレイできるように変換するツールがいくつか存在している。

詳細が不明なので列挙に留める。

  • DOS/V 移植キット
    • PC98のSystem3をDOS/VのSystem3に移植する
    • 開発はwren氏。System3.5 for Xのwren氏と同一か?
  • N88BASIC→MS-DOS移植キット
    • N88BASICで開発されていたゲームをSystem3に移植する。
    • 1992年から1997ごろにかけてRyu1氏によって開発。
  • N88BASIC→System 3.5
    • 1997年ごろUNITBASE ひろひろ氏によって開発。
  • System3.6移植
    • System3をSystem3.6に移植する。
    • 1999年ごろUNITBASE TOTO氏によって開発。

また移植以外にもSystem3を直接Xで実行できるようにた互換動作環境も存在する。

  • Xsys3
    • System3をXに移植してる。
    • 後程、何度か登場する古川氏によって1998年ごろに開発されている。

Leaf/LVNS

Leafは1996年にビジュアルノベルシリーズ(Leaf Visual Novel Series; LVNS)として『雫』、『痕』をリリースし異色の作風でゲームマニアに存在をアピール、口コミやパソコン通信、同人誌などで人気がでる。1997年にビジュアルノベルシリーズの第3弾として発売された『ToHeart』のヒットで、成人向けゲーム業界のトップブランドとしての地位を確立した。

仕様は公開されていないものの、「雫」「痕」「ToHeart」はほぼ同一のエンジンで動作している。そのため、それらの互換動作環境もしくは移植ツールが開発された。

痕メッセージ作成ツール

詳細不明。「秋田氏」によって開発されており、SCNファイルの解析を含んでいた模様。

(TODO: もうちょっと詳細を調べれないか)

Lfview

「雫」「痕」「To Heart」に含まれる画像データをデコードするプログラム。

TF氏によって1997年から2001年ごろまで開発されていた。最終的に「さおりんといっしょ!!」「初音のないしょ!!」「White Album」「こみっくパーティ」などの画像もデコードできるようになった。

PVNS

PVNSはPalm上の「雫」「痕」「ToHeart」互換動作環境である。

yossy氏によって開発されていた。開発時期は不明だが少なくとも1999年には開発がスタートしていた模様。「痕メッセージ作成ツール」「Lfview」を参考にし、開発された。

後にyossy氏はSEVENという互換動作環境を開発している。

XLVNS

XVNSはX11上の「雫」「痕」「ToHeart」互換動作環境である。

ごう氏によって1999年末ごろから開発されていた。Palm上の互換動作環境であるPVNSをベースに、XSystem3.5のサウンド処理ルーチンなどを取り込んで開発された。

(TODO: 日記から開発時のエピソードをサルベージしたい)

このXLVNSは、その後のノベルゲームの互換動作環境において大きな影響を与え、様々な互換動作環境にアイデア・コードが引き継がれていくことなる。また、開発者であるごう氏も、XLVNSの開発だけに留まらず、denpa.org上でCVSやMLのホスティングを行ない、互換環境開発において中心的な役割を担っていった。

(TODO: ごう氏はBSDの日本環境での利用において、第一人者。また今もゲーム業界にいるらしい。)

ZVNS

ZVNSはZaurus上の「雫」「痕」「ToHeart」の互換動作環境である。

S.TAKe氏によって2000年から2001年ごろまで開発されていた。xlvnsがベースとなっている。また、yatsushi@ss.titech.ac.jpの解析結果が参考にされてらしいが、詳細不明。

http://web.archive.org/web/20011214103741/http://kisyuya.on.cg/zvns/

MGLVNS

MGL2はハンドヘルドPCなどのリソースの少ないマシンでノベルゲームを動作させるためのウインドウマネージャである。

MGLVNSはMGL2上の「雫」「痕」「ToHeart」の互換動作環境である。

2001年ごろTF氏によって開発開発されていた。XLVSをベースに、鎮花祭 for MGLのコードを取り込んで開発された。ソースコードは後にXLVNSに取り込まれることとなる。

http://web.archive.org/web/20011201212219/http://hoshina.denpa.org/mglvns/

Kanon/Air

Keyは株式会社VisualArt’sのブランドの一つであり、そのゲームの開発にはAVG32という共通のエンジンが用いられていた。そのため、開発結果は流用され、後続のAir,Clanadの移植、また別ブランドで開発されたゲームの移植へと繋っていく。

xkanon

xkanonはX11上のAVG32の互換動作環境である。

Kanonを動作させることを目的に開発がスタートしたが、最終的にはさまざまなゲームも動作するよう拡張された。

  1. AIR
  2. さよならを教えて
  3. 好き好き大好き
  4. フロレアール 〜 好き好き大好き
  5. Sense off
  6. ススキノハラの約束デモ
  7. それは舞い散る桜のように
  8. SHUFFLE!
  9. 恋愛Chu! デモ
  10. 未来にキスを
  11. 雛ちゃんの唄声

2000年〜2001年ごろONE for MSXの計画に着想を得たjagarl氏によって開発された。xlvnsのX部分、Xsystem3.5のサウンド部分を流用している。

READMEに作者の住所が記述されており、歴史を感じるものとなっている。

問題などが見つかったら、以下のメールアドレスまで連絡ください。 また、 xvn-devel メーリングリストでもサポートを行います。 詳しくは http://www.creator.club.ne.jp/~jagarl/xvn-devel.htmlメーリングリストの解説があります。

                                    作者連絡先 :
                                       mail address jagarl@creator.club.ne.jp
                                               住所 茨城県つくば市梅園2-33
                                                        学園オアシス203号
                                               TEL  070-6527-8081

Kanon/Air音声化パッチ

KanonはAVG32上で動作していたため、Kanonでは用いられていないもののセリフに併せてボイスを再生する機能があった。

また、当時販売されていたDreamCast版のKanon全年齢版が発売されており、そちらには声優によるボイスがつけれれていた。

さらに、DCゲームからのデータ吸い出しについてはすでに技術が確立していた。メディアが特殊なため、PC用のドライブでは読み込めない。DCに特殊なソフトウェアを読み込ませ、ネットワーク経由でデータを吸い出す。

xkanonのスクリプト解析結果、DCからのデータ吸い出し等を統合し、kanonの音声化パッチが作られ配布されていた。 のちに、同様の手法でAirの音声化パッチ、PS2Kanonのボイスデータも利用できるAVG32等が開発されている。

(TODO: 開発時期不明)

わっふる(Mac版)

わっふるは各種プラットフォームにおけるkenjo氏によって開発されたAVG32の互換動作環境である。対象とするアプリケーションはxkanonと重複しているが、xkanonがXでの動作であったのに対し、わっふるはMac/Zaurus/WindowsCE等で動作していた。

kenjo氏は自身の日記に、開発の動機を以下のように記している。

プラットフォームによる違いもあるかもしれませんが、Macの場合、既に十分に実用に耐え得るWindowsエミュレータが存在しているので、敢 えてネイティブに移植することにどれだけの意味があるのか、というのが根本的にはあるわけです。若しくはエミュレータ上で動かないものを「やっぱりMac でもXXの笑顔を見たい!」というのでネイティブ移植するとか。

(中略)

なんと云うか、私の場合、根本的に「動かすこと」自体よりも、「動くまでの過程」の方が面白いんですね、きっと。エミュレータ作成の動機もそうでしたけど、分からなかった部分が分かったときの、「謎は解けた! 犯人はヲレだ!!」の為に作っている、という部分がかなり大きいです。そういう意味では、「他プラットフォームへの『移植の』動機」とは厳密には云えないかもしれない。

オリジナルのわっふるはMacOS上のAVG32の互換動作環境である。2001年ごろわっふる for Zaurusと並行して開発されていた。 なお、ここではUNIX化されたMacOS X以前のMacである。

http://web.archive.org/web/20011129000639/http://waffle.bunkasha.co.jp/

わっふる for Zaurus

わっふる for Zaurusもしくはざう版はZaurusu上のAVG32互換動作環境である。前述のようにわっふる(Mac版)と同時並行に、kenjo氏によって開発されていた。 http://web.archive.org/web/20020607221954/http://waffle.bunkasha.co.jp/zau/

わっふる for PocketPC

わっふる for PocketPCWindowsCE上のAVG32互換動作環境である。2001年ごろにわっふる for Zaurusをもとに古川氏によって開発され、Zaurusu版にソースコードがマージされた。

http://web.archive.org/web/20020607221954/http://waffle.bunkasha.co.jp/zau/

わっふる for PostPet

詳細不明。WindowsCEが動作するPostPet専用端末が販売されていたので、それ向けの移植と思われる。

くろこげ

わっふる(Mac版)はMacOS X以前のMacで動作していたが、それをCarbonAPIを用いてMacOS Xに移植したのが、くろこげである。2001年ごろketa氏/白石氏によって開発されていた。

http://web.archive.org/web/20020402234940/http://homepage.mac.com/keta_/kurokoge.html

ONE

ONE〜輝く季節に〜は、Tacticsによって開発されたノベルゲームである。

時代的にはxkanonよりも前だが、移植時期は後になる。

「田尻さん」「モルシさん」「にゃりんさん」よる解析結果 「田尻さん」「モルシさん」「にゃりんさん」によってONEの解析がされそれがベースになっているが、詳細不明。 (TODO: サルベージする)

xakane

nao氏によって開発されたONEの互換実行環境。2000年~2002年ごろに開発されていた。 xlvnsに影響を受けて開発が開始されており、コードとしてはxkanonから一部コードが参考にされている。

名前の由来は以下のように記述されている。

プログラム名の"xakane"は、「えっくすあかね」と読みます。実行ファイル名を 決める時、"x"という文字を含みかつ"one"という文字を含む良い名前が思い浮か ばなかったので、独断と偏見により"akane"を採用しました。

名言されていないが登場キャラクターである茜に由来すると思われる。

また、コード自体はgithubにコピーされ、今も内容を確認できる。

https://github.com/nonakap/xakane-gtkmm2

あかね for Pcoket PC

古川市によって開発されたPocketPC上のONEの互換実行環境。2001年ごろ古川市によって開発されていたが、詳細は不明。

名前からしてxkananeをベースにPocketPC環境に移植されたと思われる。

http://web.archive.org/web/20011204001231/http://watasimo.pyon.org/akaneppc.html

あかね for zau

kenjoはZaurusu上のONEの互換実行環境。2001年ごろkenjo氏によって開発されていた。xakaneのコードを元に開発されている。

名前の由来は

「xakane」に合わせると「zakane」なのですが、「ざかね」だとなんかかっこ悪いので ^^;、名称は素直に(?)「あかね(for Zau)」にしました。

とのこと。

http://web.archive.org/web/20020607221954/http://waffle.bunkasha.co.jp/zau/

Studio Air

StudioAirは伝奇系ノベルゲームを得意とする会社であり、1999年に鎮花祭を発売した。

StudioAirは互換動作環境開発について比較的寛容だったらしく、公式ページから各互換動作環境へのリンクが貼られている。

http://web.archive.org/web/20011211064549/http://www.studio-air.com/air/game/hanasizu00.html

鎮花祭 for X(xhana)

X上の鎮花祭の互換実行環境。TF氏によって2000年ごろに開発された。 xlvnsを参考に開発されている。

http://web.archive.org/web/20011211213536/http://hoshina.denpa.org/hanashizume/xhana.html

鎮花祭 for Palm(phana)

Palm上の鎮花祭の互換実行環境。鎮花祭 for Xと同時並行する形で、2000年ごろTF氏によって開発された。 鎮花祭 for Xがxlvnsを参考にしたのと同様に、こちらはpvnsを参考に開発されている。

http://web.archive.org/web/20011021231626/http://hoshina.denpa.org/hanashizume/phana.html

鎮花祭 for PocketPC(cehana)

PocketPC上の鎮花祭の互換実行環境。pvns等を開発したyossy氏によって2002年ごろに開発されていた。 鎮花祭 for Xがベースとなっている。

http://web.archive.org/web/20020203025949/http://isweb27.infoseek.co.jp/computer/yossoy/cehana/

鎮花祭 for MGL2

MGL2はUnix系OS(BSD, LINUX)がインストールされたPDA上で動作することを主目的とした軽量なウインドウマネージャである。 主にNECより発売されていたモバイルギアがターゲットさらていた。

鎮花祭 for MGL2はそのMGL2上の互換実行環境である。くがわた氏によって、2002年ごろ開発されていた。 鎮花祭 for Xがベースとなっている。

http://web.archive.org/web/20020204131046/http://www2.osk.3web.ne.jp/~kgt/strage_room.html

鎮花祭 for ICRUISE

ICRUISEはZaurus MI-EX1 と Zaurus MI-TR1 の総称であり、当時としては大きいVGAサイズの液晶を搭載していた。 (TODO: もうちょっと補足してもよさそう; http://hp.vector.co.jp/authors/VA004474/zaurus/zrep37.html)

そのICRUISE上の互換動作環境が鎮花祭 for ICRUISEである。後に家族計画 for Xを開発する「のなか/埜中公博」氏によって、2001年ごろに開発された。

http://web.archive.org/web/20010804165837/http://www.asahi-net.or.jp/~aw9k-nnk/z/zhana.html

その他

NScripter

汎用的に動作するので、これに変換するやつが結構あった。

携帯ゲーム機への移植

インテル帽子屋(後に帽子屋インサイドに改名)によって、ゲームボーイ等への携帯ゲーム機へのノベルゲームの移植が行われた。 インテル帽子屋は1994年に着せ替えソフト「KISS」のデータ集を扱う個人サークルとして設立された。その後、TinyONE(詳細不明; 携帯ゲーム機へのONEの移植か?) に影響を受け、ゲームボーイへのノベルゲーム移植を開始する。

広い意味ではこれも互換動作環境の開発といえるが、前述した各互換動作環境との技術的なつながりは発見できなかった。

http://web.archive.org/web/20061210004611/http://www.inside-cap.com/history/intelcap_history.htm

ゲームボーイもしくはゲームボーイアドバンス上で動作するエンジンMiNAGI/MiNAGI for ADVANCEを開発し、そのエンジンに向けて各種ノベルゲームを変換することで、移植を実現する。

また、他の互換環境と異なり、ゲーム本体を含んだROMイメージを作成するという性質上、不正コピーを防ぐための仕組みをいくつか導入してしている。詳細は公開されてないが、ROMイメージを作成したマシンと異なるマシン上のエミュレータでは実行できない仕組みが取り入れられいた。

http://web.archive.org/web/20061220083528/http://www.inside-cap.com/techs/index.htm http://web.archive.org/web/20070111104700/http://www.inside-cap.com/techs/security/index.htm

最終的に以下のノベルゲームが移植された。

HP200LX

今後の課題

未調査リスト

*1:改めて見るとさしてインターネットと関係ない