FC『平成天才バカボン』落下キャンセルバグ

以前まで「ハシゴバグ」と呼んでいたものですが、別にハシゴがなくてもできることが判明しました。床も壁も1マス幅ならばこれで壁抜けができるようです。なお、床が2マス幅以上の場合、1マス歩いた時点で少しの間勝手にしゃがみ状態に切り替わり、その後歩き…

バカボンのRTAをやってる人がいた

普通のプレイ動画すらあまり見当たらないゲームだったんですが世界は広いですね。ゲームセンターCXでやったらしいので若干知名度が上がったのかも?なおTAS(testrun)の方は3-1-2まで進んでいます。残念ながらハシゴバグの出番はなさそうです(一応2-1-2で壁抜…

メモリの読み込み処理は emu.registerafter() で登録する

TAS

gui.register() は1フレームに1回呼び出されるわけではないので、メモリ読み込みに使うと色々おかしなことになります。例えば以下のスクリプトをFCEUXで実行するとポーズ中でもXが増え続けます。 local x_prev = 0 function f() local x = x_prev x = x + 1 …

FC『平成天才バカボン』調査メモ

$53 U8 画面内座標x $59 U8 座標y $5D U16 カメラx $7E U16 スピードx $0178 U8 座標xサブピクセル(ただし静止したりすると0にリセットされる) $017D U16 スピードy $0180 U8 ハシゴ登りや突っ張り登り時の移動カウント(意外と重要そう) $0181 U8 座標yサブ…

minttyで全角記号を正しく表示

.minttyrc で以下のようにロケール/文字セットを設定しないと全角記号が正しく表示されないようです(GUIの Options→Text からも設定できます)。 Locale=ja_JP Charset=UTF-8 これはロケールが設定されていないと wcwidth, wcswidth が1を返すのが原因のよう…

GraphicsMagickでクリップボードの画像を保存

$ gm convert clipboard: hoge.pngImageMagickでも同様にできるようです。

FDS『Zanac』ランダーフラッシュについて

6番を6回取るとランダーフラッシュ状態になる ランダーフラッシュが敵に当たると全ての敵がランダーに変化する ランダーフラッシュが敵に当たるか画面外に出るとサブウェポンは0番初期状態に戻る ランダーフラッシュ状態になれるのはゲーム中1回のみ。また、…

FCEUXで右shiftが効かない件

私の環境だけかもしれませんが、WinXPからWin7にしたところFCEUXで右shiftキーが効かなくなってしまいました。 いろいろ調べてみたところ、Vista以降ではDirectInput8を使わないと右shiftが認識されないとか何とか。FCEUXは今のところDirectInput7を使ってい…

zsh の history コマンド

zsh

履歴全件表示: $ history 1直近20件表示: $ history -20history は fc -l と同等なので、詳細は man zshbuiltins の fc の項目を見ればOK。

FC『スーパースターフォース』TAS案

途中まで作っていたのですが、時間とモチベーションの両面からあまり続けられる気がしないので、せめて資料などを公開しておきます(3面まで進めたムービー、1〜6面地上面の攻略ムービーなど)。大まかなチャート(真ED)を考えてみます。まず、各地上面での必要…

逆アセンブラについて

Web上で動作し、コメントを共有できる、というコンセプトのNES用逆アセンブラを見つけました: 6502逆アセンブラ 2.0的逆アセってどうだろ ただしこれは試作段階のようで、商用ROMを食わせるとまともに逆アセンブルしてくれないので実戦投入は厳しそうです。…

FCEUXデバッガで条件ブレーク

ドキュメントが存在しないようなのでメモ。 2012/03/03 追記: FCEUXヘルプの FAQ / Guides -> Debugger Usage Guide (Intermediate) にドキュメントがありました^^;ブレークポイント設定時にCondition欄に条件文を書くことで条件ブレークポイントを作れるよ…

FC ダブルムーン伝説 in 19:50.34

frames: 71538, re-records: 42695 movie: website | microstorage encode: nicovideo (account | free) 前回から9分弱更新。更新点は: 預けアイテム個数が48を超えているとさらにアイテムを預けられる現象を利用し、メモリ書き換え効率を改善 細かい最適化 …

今更NESでPCM再生

NES

※中途半端な知識で書いているため壮絶に間違っている可能性があります。おかしなところは指摘してもらえると有難いです。$4011 にWAVEデータを流し込んで再生する、というやつです。とりあえず8KHzで2秒程度再生するものを作ってみました(ca65 使用。素材は…

FC『ダブルムーン伝説』預かり所バグの実用化 その5

預けアイテム個数 $63FE が 0x30 より大きい場合、さらにアイテムを預けられることが判明したので補足しておきます。49番目の空欄を引き出す技についてはその1からの説明を参照。アイテムを預けると、アドレス 0x63FF + (預けアイテム個数) にアイテムIDが書…

ダブルムーン伝説は多分更新可能

預けアイテム個数が 0x30 より大きいと、さらにアイテムを預けることができるようです。これを使えば多分更新できそう。こんな簡単なことに気付かないなんて><

FC『ダブルムーン伝説』預かり所バグの実用化 その4

前回で預かり所バグを実用化する具体的手順を示しましたが、実はこの手順中には実機での再現性が疑わしい箇所がありました。「4人目のキャラIDを 0x5D にしてセーブ→ロード」というのがそれで、実機でもフリーズせずにロードできるかどうかが疑問だったので…

FC『ダブルムーン伝説』預かり所バグの実用化 その1

2012/02/13 追記: 預けアイテム個数が 48 を超えているとさらにアイテムを預けられることが判明したため、補足記事を書きました。預かり所バグに関しては一応TAS動画(28:40.85)の投稿者コメントでグダグダと書きましたが、不十分もいいところなので少しまと…

FC ダブルムーン伝説 in 28:40.85

色々と粗い出来ですが、とりあえず預かり所バグは実用化できるということで。 実機での再現性が疑わしい箇所(キャラID 0x5D が存在するセーブデータをフリーズせずロードできるかどうか)があったので検証してみました。結論としては、「ムービーをそのまま再…

FC『ダブルムーン伝説』預かり所バグの実用化 その3

前回は、キャラIDを書き換えてセーブすることでイベントフラグを書き換えられることと、普通のキャラデータでイベントフラグ書き換えを行ってもクリア可能な状態にはならないことを示しました。そこで、キャラIDを書き換えてセーブ→ロードすることで「普通で…

FC『ダブルムーン伝説』預かり所バグの実用化 その2

前回は、預かり所バグによってPTキャラIDを書き換えられることを示しました。では、PTキャラIDを書き換えられると何が嬉しいのでしょうか。このゲームはDQ3のようにギルドで仲間の入れ替えができるため、セーブ時はキャラIDに対応したアドレスにキャラデータ…

自ビルドしたパッケージの rebase

私はCygwin上で自ビルドした zsh を使っているのですが、先日Cygwinをアップデートしたところrebase問題が発生してしまいました: 2 [main] zsh 3580 child_info_fork::abort: unable to remap zle.dll to same address as parent (00FA0000) - try running r…

file.write() 時の UnicodeError 対策

sys.stdout.write(u'ほげ') などとした際に UnicodeError を食らわないための対策。 Cygwin 1.7.9-1, Python 2.6.5-2 で調査したものです。Windows環境、およびPython3については触れません。また、ソースコードのエンコーディング((# coding: utf-8 のよう…

sys.exit() と exit()

どーでもいいことですが、Python 2.5以降では sys.exit() の代わりに exit() と書いてもプログラムが終了します。しかしドキュメントによると The site module (which is imported automatically during startup, except if the -S command-line option is g…

FC『ダブルムーン伝説』マップ作成スクリプト

Luaスクリプトを用いて『ダブルムーン伝説』のワールドマップを作ってみました。方法は単純で、DQで言うところのルーラを使った直後に座標書き換えをフックして座標を上書きしているだけです。他のゲームでも似たような方法でマップが作れるかも(要するに、…

FCEUXでLua-GDを使う

かなり今更なネタですが一応まとめておきます。 Lua Binariesの lua5_1_4_Win32_dll8_lib.zip Lua-GDの lua-gd-2.0.33r2-win32.zip 上記アーカイブに含まれるDLLを全てFCEUXディレクトリにコピーすることでLua-GDが使えるようになります。

youtube-dl を日本語に対応させる

youtube-dl が動画タイトル内の非ASCII文字を削ってしまう問題への対処。検索するとyoutube-dl.py 日本語文字対応という記事が見つかりますが、これだと長音などを拾い漏らしてしまうので def _real_extract(self, url): # ... # simplified title simple_ti…

FC『ダブルムーン伝説』預かり所バグ

有名な裏技らしいのですが、預かり所で48個アイテムを預けてから7画面目の下にある空欄を引き出すと色々おかしなことになります(キャラ名とキャラデータの対応がずれたり、金が変化したりする)。少し調べてみたところ、預けアイテム個数は $63FE, 預けアイテ…

OEIS先生

とあるゲームのLVUP所要経験値を調べていたところ 1, 4, 14, 32, ... という数列が現れました。一般項はよくわからないし、コードを読むのも面倒そうだなと思っていたのですが、オンライン整数列大辞典(OEIS)で調べてみたところあっさり見つかりました(ceil(…

FC『ミニパット』のTASを作りたいのだが

1-5がどうしてもHIOにならない><ギリギリ近いところまでは行くんですが…。また、1-9は遮断機と壁の間に打ち込むと壁抜けができた記憶があるんですが、今やるとどうしても再現できないんですよね…(記憶違いだったらゴメン)。

FC『麻雀』がFCEUXで正しくエミュレートされない件 その2

TASVideosのフォーラムにも書きましたが、もしかしたら原因がわかったかもしれません。前回はトレースログを見ても原因がさっぱりわからなかったのですが、FCEUXの ppu.cpp を眺めていたらスプライトDMAにかかる時間が512CPUクロックであることに気付きまし…

FC『麻雀』がFCEUXで正しくエミュレートされない件

このゲームは、電源投入時からAとSTARTを押しっぱなしにしていると大物手が入るという裏技*1がありますが、これをFCEUXで実行すると実機とは異なる結果になります: 左がニューファミコンでの結果(100回以上やって全て同じ)、右がFCEUX 2.1.3での結果(r2052, …

FC『麻雀』で天和は出るのか

天和を出している動画を見たことがない(既にあったらゴメン)ので検証してみました。 ただし、FCEUXの仕様のためにこのムービーは実機では再現できないのですが、この件については別記事にて。調査にあたり、和了/テンパイ判定ツールを自作したので一応アップ…

SGB ウルトラマンボール in 06:04.47

ksgもTASさんがやればksgじゃなくなるかもしれない…と思ったんですが正直微妙^^; 処理速度と面構成がもうちょっと何とかなれば…。前作(とあえて言い切ってしまう)の『アルマジロ』も処理落ちが酷かったですし。最初アップしたときに画面が乱れるという指摘を…

Zanac (NES) 12面の妖精

TASVideosのフォーラムにも書きましたが、12面の最初のところの右端に妖精がいたんですね(「夢の島」さんの攻略記事より)。 これを使えばラスボス第1形態を瞬殺できるので、現行TASは若干更新できそうですね。ラスボスの処理が若干めんどくさそうなので私は…

帰ってきた軍人将棋なんやそれ!? (FC) 裏切りバグ

自分の駒が相手の飛行機に化けるバグがあるようです。相手の飛行機が動いた後のマスに進入すると発生するようですが、入力タイミングによっては発生しなかったりしてよくわかりません。一応再現用のムービーを置いておきます。

内藤九段将棋秘伝(FC)の詰み判定

これ、明らかに桂合で不詰なのに「詰みです」と言われます(他にも何度か不詰の局面で勝ちになったことがあった気がします)。 まあ投げてもおかしくない局面ですが、全駒されても投げないこのゲームがそんな判断を下せるとは思えないので、バグなのかもしれま…

命令のオーバーラップ

あるByteがオペコードとオペランドを兼ねることがある、というお話。任天堂『ゴルフ』より抜粋: D422 : A9 00 lda #$00 D424 : 2C A9 40 bit $40A9 ...このルーチンにおいて $D425 はオペコードとオペランドを兼ねており、 jsr $D422として呼び出すと A=0x00…

『ファミコンの驚くべき発想力』読んだ

さほどディープな話題はありませんが、NESの基本的な仕様を大まかに知るには良い本だと思います。基本が怪しい人(私のことです^^;)は一読しておいて損はないと思いますが、わかってる人にとってはあまり得るものはないかも。あとサウンドに関する記述が1ペー…

フレーム境界以外でのリセットによるSRAM書き換え

タイトルが長ったらしいですね^^;これは何か名前付いてないんでしょうか?この手法自体はクロノトリガーTAS(YouTube)のいんいち氏が既に発表されていますが、その後あまり応用例を見かけないので、問題提起の意味も込めてFC版FF3でやってみました。どうやら最…