eraシリーズ改造/バリアント開発の覚え書き

euremoのeramemo

はじめに


このWikiは成人向けの内容を含みます。18歳未満の方のご利
用はご遠慮ください。

これは何のページですか?


euremoがeraシリーズの新バリアント開発を目指して試行錯誤したときのメモを書き記しておくものです。
開発にはemueraを使用しています。eramaker/eramaker2には対応しておりません。

最近はeramakerのRuby実装を作ろうとなんやかやしてることのほうが多い気がしてきた。

最近の雑感


eratohoJを移植しようとして心が折れた。GOTO多すぎる。TRY系もまだ実装してない。Emuera用バリアントはカラー表示ができたりするので、そういうのも考えるとまだまだ道は遠い。

なんとかGOTOを再現しようと思ったけどいまのRubieraの仕様だと完全に再現するのは無理なので、仕様を大幅に変えてGOTOを書けるようにするか、制限つきのgotoっぽいフロー制御文を書けるようにするか、考えてみて、とりあえず後者で実装した。中身はRubyのcatch〜throw文。eramakerのGOTOは先頭に戻って処理をやり直すループのためのGOTOか、処理をスキップする脱出のためのGOTOの二種類なので、どっちも単にloop文で書ける。Rubyならnextとbreakでいいからね。

$INPUT_LOOP
; 〜なにか処理
SIF ...
  GOTO INPUT_LOOP

こういうGOTO文は、こう書ける。

loop do
  # 〜なにか処理
  next if ...
  break
end

ただしこんなふうにloop文べた書きにするのは結構大変なので(eramakerのラベル構文の動きを再現するなら、ブロックの最後に必ずbreakを書かなきゃいけないんだけど、忘れると無限ループになる)、loopとcatch〜throwを組み合わせたラッパーメソッドを用意したというわけだ。

label :input_loop do
  # 〜なにか処理
  goto :input_loop if ...
end

そこまでやったけど、ラベル構文はブロックと違ってフラットな構造なので、ブロックに書き換えるときにラベルの範囲の終了点をでっちあげなければいけない。でっちあげ、つまり人間が恣意的に決定するしかないので、機械的に変換することができない。そんなわけで手作業で移植しなければならず、さすがに大変なのであきらめた。

というわけでeratohoJはあきらめたんだけど、eratohoAの口上システムは動かせるようになった。近いうちに再配布してもよさそうな口上を同梱したやつをアップする。

いまはeralightをRubiera用に書き直している。単純移植はできてるんだけど、eralightくらいの規模なら、Rubieraらしい書き方のサンプルを作るのにちょうどいいと思って、拡張のベースにしてもいいし処理の参考にしてもいいしという感じ。eratohoAはベースにするのにいいバリアントではあるんだけれど、eramaker時代の名残が結構そこかしこにあって、Rubyの恩恵を受けるには大幅な書き換えが必要になりそう。

あと、ちょっとずつリファレンスの整備もはじめている。

リファレンスでの説明の仕方についてはちょっと試行錯誤してる感じで、今後またちょっと変わるとは思うけど、とりあえず用意してある。

いまはまだエラー表示関係がぜんぜんできてないので、Rubiera.exeだけダウンロードすればバリアント作れるみたいな状況じゃないし、実際手元でもコンソール上で動かして開発している。それでもいいという人向けにRubyの環境を用意してRubiera用のバリアントを作るところまでのチュートリアルも用意したい。ゆくゆくはRubiera.exeがあればyrb書くだけでいいというところを目指すんだけど。

euremoについて


普段はRubyとか書いてる人。源氏名。文体でわかる人はわかると言ってた。特定怖い。
euremoは「ゆれも」と読みます。

たまにトップページに書いてるチラ裏的なやつは雑記にまとめてあります。

なんか作ったときは↓にアップロードしてます。passはera。
ゆれもろだ

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

リンク

漠々ト、獏
eramaker/eramaker2の開発元の公式サイト。

Emuera - emurator of eramaker
C#で書かれたeramakerのエミュレータ「Emuera」のプロジェクトページ。

eraシリーズを語るスレ まとめ
eraシリーズ全般のまとめ。バリアント情報、改造情報など。

eratoho まとめ
eramakerのバリアント「eratoho」のまとめ。

era板
eraシリーズについての掲示板。

サブページ

Rubiera
Bitbucket上のRubieraプロジェクトページ。Rubieraのソースコードのダウンロードはここで。

管理人/副管理人のみ編集できます