データ置き場データ置き場ニコ生RTA放送を見ていて湧いた疑問を調査してアップするかも。ないブログに表示されています。新しい記事を書く事で広告が消えます。(Fri)ドラクエ2の任意コード実行(ACE)の可能性DQ2はじめにマドハンドバグで作れるバグアイテム0x6bを戦闘中に使用するとメモリー上の$0b/00a9※からコードを実行させることができますが、大抵はうまく行かずにフリーズ等が起きます。条件を整えると、サマルトリアの王子の名前をコードとして実行したりそこからゲームパッド入力の領域($4218-$421f)にジャンプしたりする事ができます。こちらとこちらを参考にLsnes上で4つのゲームパッドからの1フレーム分の命令はなんとか実行できたのですが、2フレーム目からは狙った命令が実行されませんでした。原因がよくわからないので、とりあえず方法をまとめておきます。道具欄いっぱいで世界樹の葉を諦めると入手フラグが巻き戻り、直前に入手したマップ上のアイテムが再配置される。【手順】マップに配置された増殖したいアイテムを拾う。太陽の紋章(炎の祠)星の紋章(大灯台)(戦闘後自動でメッセージ窓が開く)【なにか】どちらも取得時に7e10b6が書き換わらない。世界樹入手時に「いいえ」を選んだ時に7e10b6の値に対応するアイテムの拾得済フラグが消されて再配置される。アイテム回収して回ってこのメモリが変化しないのを探すのが早そう。イベントアイテムで確認)フラグが消えた状態になるから初期状態の中身が入った状態に戻る。命の木の実を詰んで低レベルでシドーに挑む試みもあるらしい。Comment(0)モンスターの行動再選択とMP消費DQ2【モンスターのMP消費と行動再選択の関係性】(DQ2の仕様)最大MPが255(無限)であるか呪文を封じられているか、仮選択された呪文を使えるだけのMPがない場合、MPは消費しません。それ以外の呪文選択時は、一時的にMPを減算します。魔封じ・MP不足以外の理由で行動再選択となった時に各行動のサブルーチンSRでMPを元に戻しますが、次の呪文は再選択されてもMPを元に戻しません。消費する行動:ルカナン[2]、スクルト[2]、メガンテ[1]※[]内の数値はMP消費さらに最大HP255以上のモンスターによるホイミ(自)[3]、ベホイミ(自)[5]、ベホマ(自)[8]も一時的に選択されただけでMPを消費します。これに該当するのはベリアルのベホマだけです。(ハーゴンはMP無限のため該当しません)また、1ターンにモンスターあたり最大で8回行動が仮選択され、8回目も実行しない場合は非痛恨の打撃に確定となります。このため実行されない呪文によるMP消費は最大で1ターン8回起こることになります。ベリアルで起こす事ができればMPを64消費して打撃1発撃つ事になります。【各行動の再選択条件】ルカナン:死者も含めたプレイヤーキャラの守備力が全員0になっている。スクルト:判断力1以上ある。行動時に出現中の全モンスターの守備力が、初期値の2倍または255に達している。なる時(バズズはHP31以上の時)ベリアルのベホマ:現在HPが160以上コピペが多くて見づらいかも知れませんが、再選択条件はこちらにも記述しています。基本的なダメージ計算式はモンスターと違って2種類だけです。6を求め、99未満なら99、153より大きい場合は153とする乱数。※混乱状態でターンを開始したPCにパーティアタックした時にはダメージが大幅に軽減されます。上の式で得られるダメージDを1/8倍して1から3加算した値になります。)(更新未定)※バイキルトはダメージを2倍にします。【モンスターが行動した時】こちらは分岐条件が複雑です。ダメージ計算式は3種類で下表に条件別にまとめてあります。153>はPCの打撃と同じものです。(最小99、最大153の整数です。0から15までの一様乱数を16回生成・加算し、さらに6加算したものです。99未満なら99、153より大きい場合は153。[端数切り捨て]だけど、0~255の部分は一様分布乱数ではない。ブログには解析関係のことを書いてみる。自己紹介:2010年の3月ごろニコニコ生放送のゲーム放送でRTAを知ってよく見るようになった。どちらかというとゲームはプレイするものじゃなくてプレイを"みる"ものだと思っている。逆アセンブル解析というのをかじったものの放置していたが、某放送の影響で解析を再開。2を初クリアしたのは2011.3.10。ブログの内容はSFC版ドラクエ1・2の解析がメイン。最近はjavascriptとかluaをある程度扱えるようになったので、botでルート検証とかできたらと思いつつも進んでいない。要点をまとめたり文章書くのが苦手なので記事が長ったらしかったり、日本語のようで日本語でなかったりする。プログラム用語が使えるようになりたいかも。