ごちゃペディア

はなまるデジタル創作紀行(DTM、TAS、いろいろな技術)

技術

Lua for Windows の LUA_PATH 設定(EmuLua からモジュールを使う)

Lua for Windows には多数のライブラリが含まれていますが、それらをTAS用エミュレータ組み込みの Lua から使おうとしてもロードに失敗します。これはパス設定が適切ではないためです。ロードが成功するようにパス設定を見直しましょう。このようなタイトル…

各種MIDI2MMLプログラムを比較してみた

このたび、ごちゃと loveemu さんで PetiteMM という変換ツールを発表しました。開発に着手する前「既に優れたツールがあれば開発する必要はないのでは?」と思ったのですが、いくつか探して試した限りでは納得行くものが見つかりませんでした。そんなわけで…

MIDIトラック分割ツール「MidiSplit」を作りました

MidiSplit project page (Download) - Divide MIDI track by channel number & program numberMIDIファイルを読み込んで、楽器ごとにトラックを分割するツールを作りました。ツールの概要ですが、下記の画像をご覧ください。MidiSplit は主にチャンネル数を…

DeSmuMEに3D表示抑制機能を足してみた

Download Windows binary & source code (desmume 0.9.8-gfx3dHack)ゲーム中のキャラクタの画像だけとか、地形の画像だけキャプチャしたい時ってありますよね。他のエミュレータと同じくDeSmuMEにもレイヤー表示・非表示を切り替える機能はあるのですが、ゲ…

Lua-GD でのアルファチャンネルの扱い

Lua-GD のアルファチャンネルの扱いでよく失敗するのでまとめました。勘違いしていると、じつは画像が透明だったり、不透明だったり、半透明があるのに思い通りにブレンドされなかったりします。内容は Lua-GD 2.0.33r2 に準拠しています。他の環境下での挙…

VisualBoyAdvance でキー入力をAVIに出力するには?

Web拍手経由でご質問いただきました。 VisualboyAdvanceでLuaでの入力表示に関して色々とぐぐってたら、vba-rerecording rr22?とかいうのでjoypad.getdown(int port)という文章を見つけたので、RamWriter.lua(空白区切り版)という奴に file:write(string.f…

プロセスメモリエディタ「MHS」を利用したメモリ監視・操作

MHSはいわゆるプロセスメモリエディタと呼ばれるもので、ゲームの見えないパラメータを表示させたり、値を書き換えたりすることができます。類似のツールはほかにもありますが、TAS界隈ではよくこのMHSが利用されます*1。日本では同様のツールとして、うさみ…

GitHubへのコミットをIRCにリアルタイム通知するには?

GitHubのリポジトリにコミットしたとき、CIA.vcを利用してIRCにメッセージが飛ぶようにします。簡単、無料です。 GitHub の設定 リポジトリの Admin ページを開く (管理者アカウントが必要) Service Hooks をクリックして、一覧からCIAを選択 Active にチェ…

古い Snes9xで使うライブラリのビルド方法 (zlib, libpng)

2011 年時点の Snes9x 向けの zlib と libpng のビルド手順です。2019 年現在は公式ビルドガイドに沿っていればこういったことを考える必要はありません。本体のビルドについては、Snes9x のソースコードをコンパイルするをご覧ください。 使用するツールと…

古い Snes9x のソースコードをコンパイルする

以下はとても古い時代に書かれた記事です。最新の Snes9x は CI で自動ビルドされています。バイナリがほしいだけなら自分でビルドする必要もありません。それでも自分でビルドしたい方は公式なビルドガイドを参照してください。この記事を執筆した当時と比…

LuaでTwitterにpost!

LuaスクリプトでTwitterにツイートを投稿する手順をお教えします!半年前に同じ記事を書いたときはBasic認証を利用していましたが、Basic認証は廃止されてしまいました。そこで今回はOAuth認証を行うことにします。基本的にはignacioさんのLuaOAuthをそのま…

EmuLuaでTwitterるわ!

Basic認証が廃止されてしまったので、以下の内容は現在利用できません。こちらをご覧ください→LuaでTwitterにpost!LuaでTwitterるわ! という素晴らしい記事がありますので,流用してemutweet.luaのようなスクリプトを書けば,簡単にTwitterに追記回数キリ番…

Lua for AviUtl で EmuLua の gui 関数を使う

Lua for AviUtl で使える EmuLua 互換の関数を用意する話です。後年追加された AviUtl 本体の Lua 機能とは異なりますが、応用はできるかもしれません。 aviemugui.lua DeSmuMEはLuaの描く画像を含めたAVI出力ができません。Luaの内容を含めたAVIを作成しよ…

「忙しい人のためのカービィボウルTAS」とスクリプトによる自動カット編集

「忙しい人のためのカービィボウルTAS」と題して、過去作であるカービィボウルTASの編集版をアップロードしました。※TAS関連でいろいろあったときに動画は削除しちゃいました。許してヒヤシンス! カービィが移動している瞬間だけをトリムして結合した感じの…

メモリ内容等を動画(の外側)に表示させる方法

先日発表されたロックマン2 TASの動画は、普段目にすることのないメモリの内容を画面右下に表示していました。本稿ではこの方法について説明します。作業工程にLuaを用いるため、少なからずLuaの知識が要求されます。さほど難しくもありませんし、TAS制作に…

バージョン管理システムでTASプロジェクト管理・共有しよう! 〜初心者向けSVN入門〜

「TASプロジェクトの管理にバージョン管理システム(SVN)を使ってみてはどう?」という、よいこのTASさん向けのおはなし。ちなみに Subversion は2016年現在も現役ですが、後発の Git というバージョン管理ツールが流行しています。 バージョン管理システム…

Luaスクリプトによる半自動マップ画像作成 - 魔導物語 はなまる大幼稚園児

「Luaスクリプトは発想次第でさまざまな可能性を開ける」先人のスクリプトの数々をみてそう思いました。そこで「わたしもなにかみんながびっくりするような案を出して、なでなでされたい!」という一心で勢いよく書いたのが今回のスクリプトです。実際のソー…

gdフォーマット概要 (not gd2)

libgdのソースコードを眺めつつ、gdフォーマットの内容をまとめてみます。EmuLuaのために調べましたが、通常はgdフォーマットを直接操作せず、一般的なフォーマットをライブラリにやりとりさせる方法が望ましいでしょう。自らの目でより詳細な情報について確…

TAS用エミュレータの機能紹介

TASに興味がある方、エミュレータ開発者の方にひたすら機能を紹介する長い記事です。すべてのTAS用エミュレータがここに書かれているすべての機能を有しているわけではありません。TAS用エミュレータはオープンソースなので、これまでにない画期的なアイデア…

Luck manipulation と乱数の説明

TAS(tool-assisted speedrun)関連のお話。乱数(random number)、運・確率(luck)およびluck manipulationに関する説明です。一応「なにそれ?」という方にわかるような説明を目指しています。また、luck manipulationに対応する日本語はなにか? 今でこ…

Luaでメルセンヌ・ツイスタ(MT乱数)かいてみたよ

昨日LuaでXorShiftかいてみたよという記事を書いたばかりですが、ちょっとコードを流用してMTも用意してみました!ビット演算周りにLuaBitOpモジュールを使っています(Lua for Windowsの場合5.1.4.22より付属)。その他の方向性やアプローチはXorShiftと変…

LuaでXorShiftかいてみたよ

関連:Luaでメルセンヌ・ツイスタ(MT乱数)かいてみたよ唐突ですがLuaスクリプトはじめました。Luaスクリプトに対する個人的な感想はさておき、乱数生成の精度というか挙動がちょっと気に入らなかったので、知る人ぞ知るXorShiftという乱数生成アルゴリズム…

UPSフォーマット仕様書

現在は、UPSを設計したbyuu氏による新しいパッチフォーマット「BPS」が提案されており、新たにUPSに対応する必要性は低いです。UPSはIPSに代わって提案されたパッチファイル形式です*1。tsukuyomiを用いることでパッチの作成と適用がおこなえます。ソースコ…

RUNE/CAGE gアーカイブ

TODO:ソースコードからさらに多くを持ち込む。Susieプラグイン作成時にわかったことのメモ。プラグインはgochaismにあるかもしれません。 概要 全体的な構造は至ってシンプルです。 Size Description 8 識別子 "GML_ARC\0" 4 ファイルデータ位置 4 展開後の…

IPSフォーマット仕様書(バージョン 1.1)日本語

IPSは、データにパッチを当てるための、シンプルなシステムです。 ファイル構造 IPSパッチの大まかな構造は次の通りです。 項目 説明 Magic IPSパッチのシグネチャです。"PATCH"の5バイトでなければなりません。 Clusters パッチの集合体です。詳細は後述。 …