進捗
MMLコンパイラ(qSPC2)
土日でまあまあがっつり、進めた。
シーケンスデータをドライバへの埋め込む部分を主に実装し、次は音色データ周り。
ここは大きく変えようと思っている部分で、なぜかというと旧版は「insts」という固定のフォルダにbrr(SFC用の音声サンプリングデータ)を入れておくとそれが使われる、という仕様だったけど、これだと楽器セットを変えようと思うとフォルダの中身を丸ごと入れ替えないといけない。
よく考えると楽器セットは曲に付随するものなので、曲データの中から自由に指定できた方がいいなということで
#using "jazz" @0 cdefgab
などとすると「jazz」フォルダの中にあるbrr一式(+設定ファイル)が使われるという仕様にした。ADSR等をMML中に無理に書く必要もないなということで、設定ファイルの中に移動。
とりあえず音が出るところまで進めたら、曲を複数持って入れ替える機能(アルバム機能と呼んでいる)の設計をするという流れで。
進捗
MMLコンパイラ
エラー処理を実装し、旧バージョンよりまともなエラーメッセージが出てくるように。
cde2{aaa{a}}
などと入力すると
At line 1, column 9 連符を多重にすることはできません
といった具合。どうせ当面日本人しか使わないんだし日本語にしといた。ロケールで英語に切り替えるとかもできるけど……まあ後でいいでしょう。
あとは、シーケンスデータをドライバに埋め込む時に、ドライバのソース(Originの指定)を見て埋め込み位置を拾うようにした。せっかくregex使えるんだからこれぐらい気の利いたことをやっていいだろうと。ただ最終的には、ドライバじゃなくてホスト(S-CPU)側のプログラムにシーケンスを持たせて、動的にSPCに送り込むようにしないといけないんだよね。そうしないと複数の曲を鳴らせないので……
現況
絵を自動で塗る例のやつ
http://paintschainer.preferred.tech/
せっかく絵の練習してるんだし投入してみた。NEW GAME!の涼風青葉です。
ご存知の通り、本当はこういう色
金髪にされてしまった。
思うに、涼風青葉の生来の髪色は金髪だったんだけど、長年まんがタイムきららを読み続けて一千数百億個あった脳細胞が三十個ぐらいまで減ってしまった人達でも名前を覚えやすいよう、髪を青っぽく染め、青いスーツで「どうも、私が涼風青葉です」とやっているわけだ。なんという優しさ。でも人工知能はそんな心配りを微塵も理解しないので無粋に「お前金髪だよな?」とか言うわけ。
という理由かどうかはともかく、面白いので敢えてこれに従ってヒント情報付加+手作業での修正を経て、なかなかそれらしい結果を得た。
鉛筆で描いた絵がこうなるなら便利かも。本当に慣れてる人は同じ時間で手塗りしちゃうかもしれないけど。
近況:正月の思い出
姪と遊び人間らしさを取り戻す
年末にインフルエンザに罹ったことで精神が疲れ切った状態で帰省したが、姪二人の相手をしていたらなんとか人間として生きている実感が湧いてきた。インフルエンザの症状がつらくてというより、症状が少し収まって頭がクリアな状態で一日寝ていたら永遠のように長い賢者タイムのような物が訪れて、様々なことを反省してしまったというか、まあそんな感じ。
さて、上の姪はともかく、下の方は人見知りが激しく、なんか知らん奴が家にいるぞと警戒して奥の部屋に隠れてしまう(そこ昔は私の部屋だったんですがね……)
そこで一昨年あたりからぼちぼち練習していた絵である。ダイソーのらくがき帳にプリパラの絵を描いてみる。何枚か描いたが下のが個人的には出来が良かった(出来が良いというかフカンとか付けてないから簡単ってだけだ)
一気に興味を示すお子二人。やはり子供には絵が強い。完全に絵の時代が来た。次はプリキュアを描いてほしいと言われた。やっぱりプリキュアか……プリパラやアイスタと比べるといまいち大人が見ても面白くないので、最近は全然見てないんだけど、堀江由衣が出てることぐらいは知ってるし、資料を見ながら描けばまあ関係ない。
とはいえ最近の子供はiPadなんてものを持っているので、絵に飽きるとユーチューブを見始めてしまう。それで、ユーチューバーどもがスーパーマリオワールドの歌(歌詞なんてあったか?)を歌ったりするので、彼らは見たこともない筈のスーパーファミコン版マリオのBGMを知っているのである。ユーチューバーになりたいなんて子供が出てくるわけだ。ユーチューバーをなめとったらあかん。尚、歌詞は「ニートがいっぱい」ではなかったと思う。
ミニファミコンを譲る
その姪の母、つまり私の姉なんだけど、ミニファミコンを置いて遊んでいたら、どこを探しても見つからないので定価で譲ってくれと言われた。どうせ実家に置いてくるつもりだったので、半額でいいわと言って定価/2でミニファミコンは姉のものになった。
何回か書いているようにファミコンには思い入れが無いので、私としては今年出ると見込んでいるミニスーファミが本命なのである。ハード的には多分ミニファミコン全くそのままでスーファミのエミュレータが動くだろうし、他メーカーとの交渉などソフト面はファミコンでの実績をベースにスムーズに出来るだろうし、ビジネス的にミニスーファミはオイシイと思うんだけど、どう?絶対出すでしょ (都合のいいことを並べました)
iPhoneが膨らむ
iPhoneは膨らむものであるというのは有名な話だが、我がiPhone 3GSにもとうとうおめでたがやって来てしまった。
去年の暮れあたりから急激に電池の持ちが悪くなり、流石にもう寿命かーと思って上着のポケットに入れてしばらく放置していたらこうなっていた。時々ポンッとか音を立てるので完全に危険物だ。こんな物を家に置いておくわけにはいかない。早く放逐しなくては。ということで(私物ではないので)これ機種変できます?と相談したところあっさりOKが出た。こんなに簡単ならさっさとしておけばよかった気もするけど、まあインターネットは私物のiPadで見るし、電話受けるだけなら3GSで十分なんだよ。破裂さえしなければ。
近況
www.youtube.com
年をまたいでしまいましたが、二宮さん提供のqSPCテスト曲を。パンポットを使用してステレオになっています。水平同期がちょっと乱れてるけど、年末に急いで収録したので撮り直さなかった。ケーブルはこの前新調したばかりなので、本体側の端子が錆びてんのかな……
ボクはファミコンが欲しかったのに
https://www.amazon.co.jp/dp/B00NASDYDE/
「ゲームセンターCX」の構成作家、岐部昌幸氏の本。ジャンルは「小説」ということで一応フィクションなんだけど「群馬の小学生キノマサミチ」はどう考えても岐部氏本人のことで、まあ「ちびまるこちゃん」みたいなものか。
ゲームセンターCXは地上波分しか見てないんだけど、その地上波で流れた「スーパーマリオランド」の回で台本が間に合わなくて有野課長に怒られていた(メールが使えるのにFAXが壊れて送れないと言い訳をしてさらに怒られた)あの岐部先生なので印象に残っている。
もちろん面識なんて一切無いんだけど勝手に、一方的に「レトロゲーム開発仲間」認定をして、購入。
つまるところ完全に著者の名前だけで買ったんだけど結構面白かった。自分は兵庫だし世代が1コか2コ下でだいぶ舞台設定が違うけど、毎日しょうもないことで真剣に悩む小学生時代のあの感じだけは誰でも共通ということで。
作中ではファミコンを持っているというだけで冴えない子が突然カーストの上位にポップアップしたりするが、自分の頃はもうゲーム機がコモディティ化してたのでスーファミを持ってるだけで学校のヒーローってことはなかった気がするな。そもそも学校でそんなにゲームの話してたっけ……ゲームじゃなけりゃ何の話をしてたのかももう思い出せないが。
Kindle版が1101円(紙版は1296円)というのがちょっと高い気がしたけど、Kindle版しか買ってないのでもしかしたら結構分厚くて立派な本なのかもしれない。ヒモとか付いてたりして。
20本の線で水槽を作る
正月ですが、スーファミの開発環境が入っているNUCを立ち上げる気にならないのでMacBookだけで何か一ネタ作ることに。
Game Programming Gems 4 に載っていた水面のシミュレーションアルゴリズム(iWave)で何か作ろうかと思って年末に図書館でメモを取っていたのでこれをお題とした。……昔読んだやつはもっと簡単なアルゴリズムだった気がするんだけど別の本かな。まあいいか。
ちなみに英語版はWeb上で見られる。
http://jerrytessendorf.blogspot.jp/2011/10/interactive-water-surfaces-jerry.html
いろいろ試した結果、グリッドの行数を20まで減らして、水平方向の折れ線だけでレンダリングして、水槽を横から見た感じにしてみた。20本の折れ線だけで水面を表現できるというのはなかなか良い気がする。
水面より下をフィル(塗る)というのも試してみたけど、余計なことはせず想像力に任せた方が却ってリアルに見えると思ったので結局フィルは無しにした。